如何使用strpos
排除多个字词?我正在使用此代码,但它看起来很难看。
if (strpos($ul_n, 'word1') === false) {
if (strpos($ul_n, 'word2') === false) {
if (strpos($ul_n, 'word3') === false) {
if (strpos($ul_n, 'word4') === false) {
/----do something
}
}
}
}
答案 0 :(得分:1)
一种方法是将您正在寻找的单词放在数组中并循环遍历它们。在循环之后,如果没有找到它们,你可以做你的“某事”。
$found_word = false;
foreach (['word1','word2','word3','word4',] as $word) {
if (strpos($ul_n, $word) !== false) {
$found_word = true;
break;
}
}
if (!$found_word) {
// do something
}
答案 1 :(得分:1)
您可以将它们与if
:
&&
if (strpos($ul_n, 'word1') === false && strpos($ul_n, 'word2') === false && ...) {
// do something
}
但更简单的方法是使用正则表达式:
if (!preg_match('/word1|word2|word3|word4/') {
// do something
}
正则表达式中的 |
指定备选方案,因此只要任何单词匹配,它就会匹配。