本記事では、
PHPで文字列が最初に現れる位置を見つけることができる関数である、
strstr関数とstristr関数について、使い方と両者の違いを解説していく。
ほとんど似た名前で、使い方もほぼ同じ関数なので、困惑しないようにしっかりと理解しておこう。
strstr関数・stristr関数、「文字列が最初に現れる位置を見つける」
strstr関数・stristr関数は、どちらも
「文字列が最初に現れる位置を見つける」ことができる関数だ。
「文字列が最初に現れる位置を見つける」、
これがstrstr関数(stristr関数)のほぼ全てなのでしっかり覚えておこう。
strstr関数のサンプルプログラム
以下はstrstr関数を使って、文字列が最初に現れる位置を見つけるサンプルプログラム。
<?php
$ret = strstr("ABCDEabcde","ab");
echo $ret;
実行結果
abcde
“ABCDEabcde”という文字列の中から、”ab”という文字列が最初に現れた位置以降の文字列が戻り値として返されているのが分かる。ちなみに見つからない場合はfalseが返ってくる。
strstr関数・stristr関数の違い、「大文字小文字を区別するかどうか」
strstr関数・stristr関数の違いは、「大文字小文字を区別するかどうか」だ。
- strstr関数:大文字小文字を区別する
- stristr関数:大文字小文字を区別しない
以下はstristr関数を使って、文字列が最初に現れる位置を見つけるサンプルプログラム。
<?php
$ret = stristr("ABCDEabcde","ab");
echo $ret;
実行結果
ABCDEabcde
strstr関数の時では、大文字小文字を区別していたため、”abcde”が返されていたが、
stristr関数では、大文字小文字を区別しないため、”ABCDEabcde”が返されているのが分かるだろう。
第3引数に「true」を指定、「最初に現れた位置以前の文字列を返却」
第3引数に「true」を指定すると、「最初に現れた位置以前の文字列を返却」するようになる。
<?php
$ret = strstr("ABCDEabcde","ab",true);
echo $ret;
実行結果
ABCDE
strstr関数の第3引数に「true」を指定しているので、”ab”という文字列が見つかった位置以前の文字列である「ABCDE」が返却されているのが分かる。
strstr関数・stristr関数の使い方(詳細まとめ)
最後に、strstr関数・stristr関数の使い方の詳細をまとめておく
strstr関数(stristr関数)の書式
strstr(stristr関数)関数の書式は以下(※stristr関数も同じ)
strstr(検索を行う文字列, 検索文字列, [前部分返却フラグ])
strstr関数(stristr関数)の戻り値
strstr(stristr関数)関数の戻り値は以下(※stristr関数も同じ)
- 「検索を行う文字列」の中から、「検索文字列」が最初に見つかった部分以降の文字列を返却する。見つからなかった場合、falseを返却する。
- 「前部分返却フラグ」にtrueを指定した場合、最初に見つかった部分以前の文字列を返却する。
関連記事
https://www.php.net/manual/ja/function.strstr.php
https://www.php.net/manual/ja/function.stristr.php