为什么strpos()无法识别我的关键字?

时间:2018-10-25 13:33:43

标签: php string loops

我有这段代码,并已通过验证程序运行-我看不到任何问题。

$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始终等于{ {1}},而我从没得到0的{​​{1}}回报。

我想念什么?

2 个答案:

答案 0 :(得分:8)

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

  

返回针相对于干草堆弦的起点的位置(与偏移量无关)。另请注意   该字符串位置从0开始,而不是1。

因此,将$postrue进行比较将永远无效

if ($pos === true) {

您可以将其更改为..

if ($pos !== false) {

答案 1 :(得分:2)

这是因为strpos不返回true,而是返回子字符串在主字符串中的位置。因此,您应该这样编写if条件:

if ($pos !== false)

在此处http://php.net/manual/en/function.strpos.php

查看更多详细信息