如何检查字符串是否不包含特定短语?

php
2022-08-30 15:30:18

如何反转函数 如何检查PHP中的字符串是否包含特定单词?

if (strpos($a,'are') !== false) {
    echo 'true';
}

因此,如果在 中找不到,则会回显。trueare$a


答案 1

代码如下:

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,字符串的开头。这就是为什么使用 === 错误检查如此重要的原因。


答案 2

使用 strstr():

if (!strstr($var, 'something')) {
    // $var does not contain 'something'
}

或 strpos():

if (strpos($var, 'something') === false) {
    // $var does not contain 'something'
} 

或者 stripos() 如果你想要不区分大小写的搜索。

strpos() 速度更快一些


推荐