在PHP中,strpos()无法在字符串中找到双引号('“')

时间:2010-01-31 18:18:18

标签: php strpos

这两个:

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 个答案:

答案 0 :(得分:9)

您是否1000%确定$tok中的双引号实际上是文字"而不是HTML实体?你能检查你的HTML代码吗?

答案 1 :(得分:2)

在命令行使用php,您的代码适合我。

我注意到你没有指定$ tok的内容。我也注意到它看起来像你正在输出到浏览器。你确定html

&quot
是否使用

而不是实际引用字符?

答案 2 :(得分:1)

在你的情况下,

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

  

此函数可能返回布尔值   FALSE,但也可能返回   非布尔值,其值为   FALSE,例如0或“”。请阅读   关于布尔人的部分了解更多   信息。使用===运算符   测试这个的返回值   功能 - http://us3.php.net/strpos