如何反转How do I check if a string contains a specific word in PHP?
的功能if (strpos($a,'are') !== false) {
echo 'true';
}
如果true
中are
不,则回复$a
。
答案 0 :(得分:24)
这里的代码:
if (strpos($a, 'are') !== false) {
// The word WAS found
}
表示在字符串中找到单词WAS。如果删除NOT(!)运算符,则表示已撤消该条件。
if (strpos($a, 'are') === false) {
// The word was NOT found
}
===非常重要,因为如果单词'are'位于字符串的最开头,strpos将返回0,并且因为0松散地等于FALSE,所以你会因为找出错误而感到沮丧。 ===运算符使得它非常字面地检查结果是否为布尔值false而不是0。
举个例子,
if (!strpos($a, 'are')) {
// String Not Found
}
如果$ a =“你今晚过来了吗?”,这段代码会说字符串'are',因为'are'的位置是0,字符串的开头。这就是使用===错误检查非常重要的原因。
答案 1 :(得分:2)
使用strstr():
if (!strstr($var, 'something')) {
// $var does not contain 'something'
}
或strpos():
if (strpos($var, 'something') === false) {
// $var does not contain 'something'
}
如果你想要不区分大小写的搜索,请str 我 pos()。
strpos()有点faster
答案 2 :(得分:0)
当你看到它时,你可能会踢自己......
if (!strpos($a,'are') !== false) {
echo 'true';
}
答案 3 :(得分:0)
试试这个
$string = "This is beautiful world.";
$$string = "Beautiful";
preg_match('/\b(express\w+)\b/', $string, $x); // matches expression
\b is a word boundary
\w+ is one or more "word" character
\w* is zero or more "word" characters
enter code here
请参阅escape sequences上有关PCRE的手册。