有谁知道如何在字符串中进行字符串检查?
例如:
$variable = "Pensioner (other)";
如果我想检查$ variable是否包含“养老金领取者”这个词,我怎么能用PHP做呢?我在php中尝试了以下代码,但它始终返回false :(
$pos = strripos($variable,"Pensioner");
if($pos) echo "found one";
else echo "not found";
答案 0 :(得分:3)
在手册中,the example使用===进行比较。 The === operator还比较两个操作数的类型。要检查“不相等”,请使用!==。
您的搜索目标'养老金领取者'位于0位置,该函数返回0,等于假,因此if ($pos)
始终失败。要更正这一点,您的代码应为:
$pos = strripos($variable,"Pensioner");
if($pos !== false) echo "found one";
else echo "not found";
答案 1 :(得分:2)
您使用的是反向功能strripos
,您需要使用stripos
。
if (stripos($variable, "Pensioner") !== FALSE){
// found
}
else{
// not found
}
这应该做:
if (strripos($variable, "Pensioner") !== FALSE){
// found
}
else{
// not found
}
使用strpos/stripos
时,严格类型比较(!==
)非常重要。
答案 2 :(得分:1)
strripos及其兄弟姐妹的问题是他们返回找到的子字符串的位置。因此,如果您正在搜索的子字符串恰好位于开头,则返回0,这在布尔测试中为false。
使用:
if ( $pos !== FALSE ) ...
答案 3 :(得分:1)
$variable = 'Pensioner (other)';
$pos = strripos($variable, 'pensioner');
if ($pos !== FALSE) {
echo 'found one';
} else {
echo 'not found';
}
^适合我。请注意,strripos()
不区分大小写。如果您希望它是区分大小写的搜索,请改用strrpos()
。