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';
}
是的,它可以...您拥有的脚本将返回YES
..总是因为strstr
用于查找字符串的第一次出现及其独立于其他声明的工作..它能够 在 2 个不同的第一次出现实例中找到brown
ANDfox
他们是如何工作的
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;
}
我希望这有帮助
这取决于您使用它的目的。从外观上看,您应该使用strpos
,而不是strstr
.