文字を検索する場合、PHP には strstr、stristr、strpos の 3 つの関数が用意されています。これらの関数の使い方は少し異なります。
文法:
文字列 strstr (干し草の文字列、針の文字列)
干し草の山の針から端までの文字列を返します。
戻り値がない場合、つまり針が見つからない場合はFALSEを返す
注: この関数では大文字と小文字が区別されます。
例1
コードは次のとおりです | コードをコピー |
$city_str=fopen(cgi_path."/data/weather/city.dat","r"); |
city.dat にはいくつかの都市が含まれています。フォーマットは次のとおりです
広州|深セン|汕頭|恵州
詳細については、http://www.bKjia.c0m/phper/18/8304359e6918876b45d02c200bc8f193.htmをご確認ください。
stristr() 関数は、別の文字列内で最初に出現した文字列を検索します。
成功した場合は、文字列の残りの部分 (一致する点から) を返します。文字列が見つからない場合は false が返されます。
コードをコピー | |
echo stristr("Hello world!","WORLD"); ?> 出力: 世界!
|
ストラポス紹介
最初の 2 つと比較すると、検索が成功した後に文字が返されるのに対し、strpos は検索が成功した後に位置を返します。位置が0の可能性があるため、検索失敗の判定には===falseを使用した方が適切です。針が文字列のヘイスタック内にあるかどうかを判断するだけの場合は、strpos を使用する方がメモリ占有量が少なく、実行速度も速くなります。しかし、strpos は特殊文字をあまりサポートしていません。たとえば、中国語はあまりサポートしていません
例
コードをコピー | |
echo strpos("Hello world!","wo"); ?> 出力: 6
|
上記の例と組み合わせると、次のような結論が得られます
strstr 文字は大文字と小文字を区別しません。その文字から検索を開始すると true が返され、それ以外の場合は false が返されます。
strpos では大文字と小文字が区別されます。strpos の検索が成功すると、位置が返されます。位置が0の可能性があるため、検索失敗の判定には===falseを使用した方が適切です。