PHP 文字列 存在チェック
PHP 文字列 存在チェック
検索したい文字列は、検索される文字列に存在するかどうかという判断は実際によく使われると思います。
実現方法はいろいろありますが、この場合は、strpos関数を使ったほうが良いかと思います。
注意:strstr関数も実現できますが、strstr関数は特定な文字から後ろ(また前)の文字列を取得する場合には、適任だと思いますが、ここの仕様は文字列存在チェックなので、strstr関数よりstrpos関数のほうが良いかと思います。
また、preg_match関数も使えますが、複雑なので、シンプルのstrpos関数は一番良いかと思います。
■文法
strpos( '検索される文字列’, '検索したい文字列’ [, オプション:検索開始位置] );
■返り値
見つかった場合は、検索される文字列の先頭(0)からの相対位置を返します。
見つからない場合は、FALSE を返します。
■例1:オプションを使わない
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php $object = "34"; // 検索したい文字列 $subject = "12345"; // 検索される文字列 $pos = strpos($subject, $object); // 存在した場合 if($pos !== false){ echo $pos; // 検索される文字列の先頭からの相対位置を返します } // 存在しない場合 else{ var_dump($pos); // FALSE を返します。 } ?> |
“3"は"12345″の3番目ですが、先頭1の位置は0からカウントするため、以上の結果は:2です。
■例2:オプションを使う
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php $object = "34"; // 検索したい文字列 $subject = "12345"; // 検索される文字列 $pos = strpos($subject, $object, 3); // 存在した場合 if($pos !== false){ echo $pos; // 検索される文字列の先頭からの相対位置を返します } // 存在しない場合 else{ var_dump($pos) ; // FALSE を返します。 } ?> |
“12345"の位置3(つもり数字4のところ)から、"34″を検索しようとしましたが、存在しないため、以上の結果は:falseです。
■例3:オプション(マイナス)を使う
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php $object = "34"; // 検索したい文字列 $subject = "12345"; // 検索される文字列 $pos = strpos($subject, $object, -2); // 存在した場合 if($pos !== false){ echo $pos; // 検索される文字列の先頭からの相対位置を返します } // 存在しない場合 else{ var_dump($pos) ; // FALSE を返します。 } ?> |
オプション:検索開始位置をマイナス数字も指定できますが、検索される文字列の最後から何番目から検索する意味なので、使った際に要注意です。
上記の例ですと、検索される文字列"12345″の最後から2番目、つもり、数字4から検索することです。"45″の中に、"34″が存在しないので、結果は:falseです。
ディスカッション
コメント一覧
まだ、コメントがありません