PHP 文字列
今回は、文字列をやります。文字列の結合は基本、文字列の比較は条件分岐、ループを参照して下さい。シングルクォーテーション、ダブルクォーテーション
文字列の長さ取得
空白除去と大文字小文字変換
文字列の検索
文字列の抜き出し
文字列の置換
シングルクォーテーション、ダブルクォーテーション
シングルクォーテーション、ダブルクォーテーションで文字列を囲みますが、ダブルクォーテーションでは変数、エスケープを扱えるに対し、シングルクォーテーションは扱えません。
<?php
$str = "abc";
echo "<pre>";
// ダブルクォーテーションは変数とエスケープを表示できます。
echo "ダブルクォーテーション:{$str}\n";
echo 'シングルクォーテーション:{$str}\n';
echo "</pre>";
?>
実行イメージ 文字列の比較
文字列の比較は、厳密に行うには === を使用すべきですが、型違いの比較を行っても良いとする場合は、strcmp関数を使用します。== でも比較できるように見えますが、0 == "a" がtrueと判断されるなど、型違いの比較で思わぬ結果が出る場合があります。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP Test</title>
</head>
<body>
<?php
$str = "abc";
if (strcmp("ABC", $str) === 0) {
echo "ABC";
} elseif (strcmp("abc", $str) === 0) {
echo "abc";
} else {
echo "else";
}
?>
</body>
</html>
文字列の連結
文字列の連結は . (ドット)で行います。
<?php
echo "abc" . "def";
?>
文字列の長さ取得
文字列のバイト数を取得するにはstrlen関数を使用し、文字数を取得するにはmb_strlen関数を使用します。
<?php
$str1 = "abc";
$str2 = "あいう";
echo "strlen($str1) : " . strlen($str1);
echo "<br />";
echo "strlen($str2) : " . strlen($str2);
echo "<br />";
echo "mb_strlen($str1) : " . mb_strlen($str1);
echo "<br />";
echo "mb_strlen($str2) : " . mb_strlen($str2);
?>
実行イメージ mb_strlen関数を使用するには、(windowsの場合)php.ini を修正する必要があります。
php.iniの設定でphp_mbstring.dllを有効にします。
php.ini
修正前
;extension=php_mbstring.dll
修正後
extension=php_mbstring.dll
空白除去と大文字小文字変換
空白除去は、trim、ltrim、rtrim関数を使用します。大文字小文字変換は、strtolower、strtoupper関数を使用します。
<?php
$str1 = " Abc ";
echo "<pre>";
echo "trim($str1) : ---" . trim($str1);
echo "---<br />";
echo "ltrim($str1) : ---" . ltrim($str1);
echo "---<br />";
echo "rtrim($str1) : ---" . rtrim($str1);
echo "---<br />";
echo "strtolower($str1) : ---" . strtolower($str1);
echo "---<br />";
echo "strtoupper($str1) : ---" . strtoupper($str1);
echo "---<br />";
echo "</pre>";
?>
実行イメージ 文字列の検索
文字列の検索はstrstr、strpos、mb_strpos関数があります。関数 | 説明 |
---|---|
strstr | 検索文字列以降の文字を返す |
strpos | 検索文字列の位置(バイト)を返す |
mb_strpos | 検索文字列の位置(文字数)を返す |
すべて見つからない場合は、FALSEを返します。 戻り値===FALSE で比較してください。
mb_strpos関数を使用する場合は、mb_strlen関数と同じようにphp_mbstring.dllを有効にしてください。
<?php
$strBase = "abcdef";
$strSearch = "cd";
echo "検索元:{$strBase}、検索する文字列:{$strSearch}";
echo "<br /><br />";
echo "strstr($strBase,$strSearch)<br />";
echo strstr($strBase,$strSearch);
echo "<br /><br />";
echo "strpos($strBase,$strSearch)<br />";
echo strpos($strBase,$strSearch);
echo "<br /><hr />";
$strBase = "あいうえお";
$strSearch = "うえ";
echo "検索元:{$strBase}、検索する文字列:{$strSearch}";
echo "<br /><br />";
echo "strstr($strBase,$strSearch)<br />";
echo strstr($strBase,$strSearch);
echo "<br /><br />";
echo "strpos($strBase,$strSearch)<br />";
echo strpos($strBase,$strSearch);
echo "<br /><br />";
echo "mb_strpos($strBase,$strSearch)<br />";
echo mb_strpos($strBase,$strSearch);
?>
実行イメージ 文字列の抜き出し
文字列の抜き出しは、substr、mb_substr関数を使用します。引数は、対象文字列、位置、長さです。substrはバイト指定、mb_substrは文字数指定になります。
mb_substr関数を使用する場合は、mb_strlen関数と同じようにphp_mbstring.dllを有効にしてください。
<?php
$str1 = "abcdef";
$str2 = "あいうえおかきくけこ";
echo "substr($str1, 3, 2);<br/>";
echo substr($str1, 3, 2);
echo "<br /><br />";
echo "substr($str2, 6, 3);<br/>";
echo substr($str2, 9, 6);
echo "<br /><br />";
echo "mb_substr($str2, 3, 2);<br/>";
echo mb_substr($str2, 3, 2);
?>
実行イメージ 文字列の置換
文字列の置換はstr_replace関数で行います。引数は( 置換前 , 置換後 , ベース文字列)になります。
<?php
$str2 = "あいうえお";
echo "str_replace(\"うえ\", \"☆\", $str2);<br />";
echo str_replace("うえ", "☆", $str2);
?>
実行イメージ ページのトップへ戻る