可以用strstr()來查找一個句子中的兩個單獨的關鍵詞嗎?可以用strstr()來查找一個句子中的兩個單獨的關鍵詞嗎?
例如:
$sentence = 'the quick brown fox';
if (strstr($sentence, 'brown') && strstr($sentence, 'fox')) {
echo 'YES';
} else {
echo 'NO';
}
可以用strstr()來查找一個句子中的兩個單獨的關鍵詞嗎?可以用strstr()來查找一個句子中的兩個單獨的關鍵詞嗎?
例如:
$sentence = 'the quick brown fox';
if (strstr($sentence, 'brown') && strstr($sentence, 'fox')) {
echo 'YES';
} else {
echo 'NO';
}
這取決於你使用它什麼。從它的外觀你應該使用strpos
,而不是strstr
。
並使用!== false – nathanjosiah 2012-04-06 22:09:50
太多'=':p'!== false'。 – 2012-04-06 22:10:10
:)它已被更正 – nathanjosiah 2012-04-06 22:11:02
是的,它可以...腳本您有關於將返回YES
..總是因爲strstr
用來查找字符串的首次出現和其作品的獨立於其他聲明..它能夠找到brown
和fox
在2個不同第一次出現的情況下
他們是如何工作的
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;
}
我希望這有助於
您能夠推薦一個更好的方法?我還是相當新的PHP,所以我依賴於我一直在讀的東西(這並不總是最好的方法:(笑) – 2012-04-06 22:22:41
大聲笑..好吧我會更新我的答案與一些methosd,但它取決於您的使用情況 – Baba 2012-04-06 22:28:14
它肯定會。謝謝!:-D – 2012-04-06 23:25:05
你嘗試了嗎? – 2012-04-06 22:08:26
我一直在使用stristr()(我正在閱讀的書中推薦使用它來查找字符串中的字符串)。它可以很好地定位單個詞語的出現,但我不確定它是否正在查找多個詞語。 – 2012-04-06 22:13:02