戻る

文字列内を検索する(参考)

PHP

strpos()関数は第1引数の文字列内を検索し、第2引数の文字列が最初に現れる位置を返します。strrpos()関数は第2引数の文字列が最後に現れる位置を返します。返される値は1文字目を「0」、2文字目を「1」としてカウントします。

検索文字列が見つからなかった場合は、どちらの関数も長さ=0の文字列「""」を返します。この返り値をstrlen()関数に渡して、その返り値が0かどうかで検索結果を判断できます(例3)。なお、「strpos()関数またはstrrpos()関数の返り値がFalseの場合は検索文字が見つからなかった」と判断することもできますが、環境によっては正確でない場合もあります。

例4と例5は、どちらも「p」という文字を検索します。strpos()関数は先頭から探すため、「Hyper」の「p」の位置が返されます。strrpos()関数は後ろから前へ探すため、「processor」の「p」の位置が返されます。

なお、strrpos()関数は文字列の後ろから探しますが、返す値はstrpos()関数と同じく「先頭から数えた位置」です。例6と例7では「Hyper」は1つしかないので、この場合は同じ値が返されます。

<?php
header("Content-type: text/html; charset=utf-8");

$data = "PHP:Hypertext Preprocessor";

//先頭からPHPを検索
echo strpos($data, "PHP") . "<br>";

//先頭からtextを検索
echo strpos($data, "text") . "<br>";

//先頭からMySQLを検索
echo strpos($data, "MySQL") . "→";
echo "検索結果の長さ" . strlen(strpos($data, "MySQL")) . "<br>";
echo strpos($data, "MySQL") ? "発見" : "見つからない" . "<br>";

//先頭からpを検索
echo strpos($data, "p") . "<br>";

//後ろからpを検索
echo strrpos($data, "p") . "<br>";

//先頭からHyperを検索
echo strpos($data, "Hyper") . "<br>";

//後ろからHyperを検索
echo strrpos($data, "Hyper") . "<br>";
?>

inserted by FC2 system