トッカンソフトウェア

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);

?>

			
実行イメージ



ページのトップへ戻る