首页 > 解决方案 > 为什么 strpos() 无法识别我的关键字?

问题描述

我有这段代码并通过验证器运行它 - 我看不到任何问题。

$verb = array("count","draw","Write");
echo $sentence."<br>";

foreach ($verb as $v)
{
    echo "Verb=" . $v;
    echo "<br>";

    $pos = strpos($sentence, $v);

    if ($pos === true) {
        echo "<br> Match found<br>";
        $check="1";
    } else {
        echo "<br>Not found!<br>";
        $check="0";
    }
}

echo $check;

$sentence="Write"(或任何其他包含其中一个项目$verb的东西) - 它返回为...false总是$check等于0并且我永远不会得到.true$pos

我错过了什么?

标签: phpstringloops

解决方案


strpos()如果找不到,将返回 false,如果找到,则返回字符串的偏移量,来自手册...

返回针相对于 haystack 字符串开头的位置(与偏移量无关)。另请注意,字符串位置从 0 开始,而不是 1。

所以比较$postrue永远行不通

if ($pos === true) {

你可以把它改成..

if ($pos !== false) {

推荐阅读