ある文字列から複数の文字を検索したい
始めはstrstrを使い一つの文字列だけを検索していたのですが、途中で複数の文字列を検索できるようにしたくなり、考える考える...
悩んだ結果、解決方法を考えてみたのでメモします。
strposやstrstrを使用していたのですが、どうしても1つの文字列しか検索できず...
複数の文字列を検索したい場合はどうすれば良いのか試行錯誤しました。
preg_matchを用いてみました。
preg_matchは正規表現によるマッチングを行います。
対象の文字列に検索したい文字列があった場合(マッチした場合)1を返します。検索文字列がなかった場合は0を返します。
<?php
//変数に検索したい複数の文字列を入れておく
$search1 = '/赤|黄|青/';
$search2 = '/黒|白/';
//検索対象の文字列
$val = '赤緑黄黒桃橙';
if(preg_match($search1, $val) === 1){
print('赤か黄か青を含みます');
}else if(preg_match($search2, $val) === 1){
print('黒か白を含みます');
}else{
print('指定された色は含みません');
]
ポイントは変数部分の書き方です。
**/で囲い、|**でOR表現となります。
以上、preg_matchを使用すると複数条件で文字列検索を行うことができました。