#正規表現を使わない場合
strpos,strstr,preg_matchではstrposが最も早いのでstrposを使う。
PHPマニュアルにもそのように書いてある。
strstr
もし特定の haystack に needle があるかどうかを調べるだけの場合、 より高速でメモリ消費も少ない strpos() を代わりに使用してください。
strposは、該当する文字列が見つからなかった場合は、falseを返す。
該当する文字列が見つかった位置を数値で返すので(※1)、型までチェックする必要がある。そのため、===falseもしくは!==falseを使うこと。
※1例えば、strpos('abcd','ab')は0を返す。
if(strpos($subject,'bc') !== false){
//'abcd'のなかに'bc'が含まれている場合
}
if(strpos($subject,'bc') === false){
//'abcd'のなかに'bc'が含まれていない場合
}
※名前が半角スペースまたは全角スペースで名字と名前が区切られている文字列を、名字と名前で取得
if(strpos($data['User']['name'],' ') !== false){
//全角スペース区切り
list($lastname,$firstname) = explode(' ',$data['User']['name']);
}elseif(strpos($data['User']['name'],' ') !== false){
//半角スペース区切り
list($lastname,$firstname) = explode(' ',$data['User']['name']);
}else{
//スペースなし区切り
$lastname = $data['User']['name'];
$firstname = '';
}
#正規表現を使う場合
preg_matchを使う。
preg_matchはマッチした場合は1を返す。マッチしなかった場合は0を返す。
if(preg_match('/bc/',$subject)){
//$subjectのなかにbcが含まれている場合
}
if(!preg_match('/bc/',$subject)){
//$subjectのなかにbcが含まれていない場合
}