ある文字列の中に指定した文字列が含まれるかどうかを調べる方法を見てみましょう。次の関数が用意されています。
strpos関数は、対象となる文字列の中に指定した文字列が最初に現れる位置を返します。
| 関数名 | strpos | 
|---|---|
| パラメーターリスト | |
| パラメター名 | 説明 | 
| string $haystack | 検索のターゲットとなる文字列 | 
| string $needle | 検索する文字列 | 
| 返り値 | |
| int | 0から始まる見つかった位置を、見つからない場合はFALSEを返す | 
○ ファイル
「PregSplitTest.php」ファイルをコピーして、次のPHPファイルをプロジェクトに追加してください。
| ファイルの種類 | PHPファイル | 
|---|---|
| ファイル名 | StrPosTest.php | 
○ プログラム
次のようにプログラムを記述してください。
StrPosTest.php
○ 実行結果
○ 解説
10行目で、検索対象の文字列を準備しています。13行目でその文字列内にカレーが含まれるかを検索しています。「strpos」関数は見つかったらその位置を返すので、見つかったかどうかを確認する場合は「false」ではないかどうかを判定することができます。今回は「カレー」という文字列が含まれるので、「false」ではないと判断され、「今日はカレーです。」と表示されます。
20行目では、検索対象文字列内に「焼肉」が含まれるかどうかを判定しています。含まれないため「false」が返ります。そのため、「今日は焼肉ではありません。」と表示されます。
preg_match関数は、対象となる文字列の中に正規表現で指定した文字列が含まれるかどうかを確認します。
| 関数名 | preg_match | 
|---|---|
| パラメーターリスト | |
| パラメター名 | 説明 | 
| string $pattern | 検索するパターンを表す文字列 | 
| string $subject | 検索する文字列 | 
| 返り値 | |
| int | パターンにマッチした場合は1を、マッチしなかった場合は0を返す | 
○ ファイル
「StrPosTest.php」ファイルをコピーして、次のPHPファイルをプロジェクトに追加してください。
| ファイルの種類 | PHPファイル | 
|---|---|
| ファイル名 | PregMatchTest.php | 
○ プログラム
次のようにプログラムを記述してください。
PregMatchTest.php
○ 実行結果
○ 解説
13行目で、「preg_match」関数を使用しています。第1引数に正規表現を指定します。今回は「/カレー/」を引数として渡しています。これにより「カレー」がターゲットとなる文字列内に含まれるので「1」が返ってきます。20行目では、「焼肉」がターゲットとなる文字列に含まれるかを確認しています。含まれていないので「0」が返ってきます。
27行目では、「今日」から始まるかどうかを確認しています。正規表現で「^○○」と指定することで前方一致かどうかを確認できます。今回は「今日」から始まるので、「1」が返ってきます。34行目では、「ライスです。」で終わるかどうかを確認しています。正規表現で「○○$」と指定することで後方一致かどうかを確認できます。今回は「ライスです。」で終わるので、「1」が返ってきます。