这两个:
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不能处理双引号,为什么不找到它?我在我的智慧结束。
答案 0 :(得分:9)
您是否1000%确定$tok
中的双引号实际上是文字"
而不是HTML实体?你能检查你的HTML代码吗?
答案 1 :(得分:2)
在命令行使用php,您的代码适合我。
我注意到你没有指定$ tok的内容。我也注意到它看起来像你正在输出到浏览器。你确定html
"
是否使用而不是实际引用字符?
答案 2 :(得分:1)
strpos($ tok,'“')等于=== 0,因为$ tok中的第一个元素是双引号(”)。然后当你打印出0时你什么也得不到,因为它是一个布尔值FALSE。
此函数可能返回布尔值 FALSE,但也可能返回 非布尔值,其值为 FALSE,例如0或“”。请阅读 关于布尔人的部分了解更多 信息。使用===运算符 测试这个的返回值 功能 - http://us3.php.net/strpos