代码之家  ›  专栏  ›  技术社区  ›  Daniel Bingham

在PHP中,strpos()在字符串中找不到双引号(“”)。

  •  2
  • Daniel Bingham  · 技术社区  · 16 年前

    这两个:

    echo 'Tok: '.$tok.' Strpos: '.strpos($tok, "\"").' length: '.strlen($tok).'<br>';
    

    还有这个:

    echo 'Tok: '.$tok.' Strpos: '.strpos($tok, '"').' length: '.strlen($tok).'<br>';
    

    产生以下输出:

    Tok: "fresh Strpos: length: 11
    

    strpos完全找不到双引号,它返回false(我用strpos()==false检查过)。有人能告诉我这里发生了什么事吗?我找不到表明strpos不能处理双引号的文档,为什么它找不到?我快疯了。

    3 回复  |  直到 15 年前
        1
  •  8
  •   Pekka    16 年前

    你有1000%的把握 $tok 实际上是文字 " 不是HTML实体?你能检查一下你的HTML代码吗?

        2
  •  2
  •   Doug T.    16 年前

    在命令行中使用php,您的代码可以为我工作。

    我注意到你没有具体说明$tok的内容。我还注意到它看起来像是在输出到浏览器。你确定HTML

    &quot
    

    不是使用了实际的引号字符?

        3
  •  1
  •   Xeoncross    16 年前

    在您的例子中,strpos($tok,“”)等于==0,因为$tok中的第一个元素是双引号(“)。然后当你打印出0时,你什么也得不到,因为它是一个布尔值错误。

    此函数可能返回布尔值 错误,但也可能返回 非布尔值,计算结果为 假,如0或“”。请阅读 关于布尔的部分更多 信息。使用==运算符 测试此的返回值 功能- http://us3.php.net/strpos

    推荐文章