strstr() を使用して、文内の 2 つの別個のキーワードを検索できますか?
元:
$sentence = 'the quick brown fox';
if (strstr($sentence, 'brown') && strstr($sentence, 'fox')) {
echo 'YES';
} else {
echo 'NO';
}
strstr() を使用して、文内の 2 つの別個のキーワードを検索できますか?
元:
$sentence = 'the quick brown fox';
if (strstr($sentence, 'brown') && strstr($sentence, 'fox')) {
echo 'YES';
} else {
echo 'NO';
}
何に使うかによります。それを見るとstrpos
、 ではなくを使用する必要がありますstrstr
。
はい、できます...あなたが持っているスクリプトは戻りYES
ます..常にstrstr
文字列の最初の出現を検索するために使用され、他の宣言とは無関係に機能します ..2つの異なる最初の出現インスタンスでbrown
ANDを見つけることができましたfox
それらがどのように機能するか
strstr($sentence, 'brown') // Returns 'brown fox'
strstr($sentence, 'fox') // Returns 'fox'
両方の結果は有効な文字列です
試してみると
var_dump(strstr($sentence, 'fish')); // Returns false
現在、これは文字列をチェックする効率的な方法ではありませんが、独自の用途があります
ドキュメント : http://php.net/manual/en/function.strstr.php
編集1
$sentence = 'the quick brown fox';
$keywords = array (
'brown',
'fox'
);
echo "<pre>";
preg_match
http://php.net/manual/en/function.preg-match.php
例
$regex = '/(' . implode ( '|', $keywords ) . ')/i';
if (preg_match ( $regex, $sentence )) // Seach brown or fox
{
echo "preg_match brown or fox" . PHP_EOL;
}
これはすべて、ユースケースに応じて機能します
strpos()
- astring 内で部分文字列が最初に出現する位置を見つける
stripos()
- 文字列内で大文字と小文字を区別しない部分文字列が最初に出現する位置を見つける
strrpos()
- 文字列内で部分文字列が最後に出現する位置を見つける
strrchr()
- 文字列内で最後に出現する文字を見つける
例
if (strpos ( $sentence, $keywords [0] ) || strpos ( $sentence, $keywords [1] )) {
echo "strpos brown OR fox " . PHP_EOL;
}
if (strripos ( $sentence, $keywords [0] ) && strpos ( $sentence, $keywords [1] )) {
echo "strpos brown AND fox " . PHP_EOL;
}
これが役立つことを願っています