代码:
<?php
$str1 = "subidubidu";
$str2 = "subi";
if(strpos($str1,$str2)){
echo "Contains!";
}else{
echo "Not contains!";
}
?>
结果是“不包含”,我很好奇为什么呢? 可能是问题,“subi”在[0]的索引处,0返回false?有什么想法吗?
答案 0 :(得分:3)
我希望它有所帮助
$str1 = "subidubidu";
$str2 = "subi";
if (strpos($str1, $str2) !== FALSE)
{
echo 'Found it';
}
else
{
echo 'Not found.';
}
答案 1 :(得分:2)
<?php
$str1 = "subidubidu";
$str2 = "subi";
if (strpos($str1, $str2)!==false) {
echo "Contains!";
} else {
echo "Not contains!";
}
你正在寻找这个--- strpos如果找到则返回位置,如果没有则返回false
答案 2 :(得分:1)
您的代码是正确的。但问题出在这里:
<强>解释强>
strpos
函数返回包含字符串的索引。在您的情况下,它返回 0 作为字符串的索引。 0表示编程错误。这就是你的代码执行其他部分的原因。
如果您的字符串位于1或2的位置,依此类推,那么代码将正常工作。但是这将是错误的,因为匹配的字符串位于第0位。
对于未来的前景,您必须将值放在这样的变量中:
$str1 = "subidubidu";
$str2 = "subi";
$pos = strpos($str1, $str2);
if ($pos != '' || $pos !== false) {
echo 'Found it';
} else {
echo 'Not found.';
}
答案 3 :(得分:0)
如果您查看documentation:
注意我们使用===。简单地==不会按预期工作 因为&#39; a&#39;的位置是第0个(第一个)角色。
它声明您不能只使用==
比较,这是您在键入时所做的事情
if (strpost($str1, $str2)) { .. }
您需要使用===
。所以它看起来像:
<?php
$str1 = "subidubidu";
$str2 = "subi";
if (strpos($str1, $str2)!==false) {
echo "Contains!";
} else {
echo "Not contains!";
}