使用strpos()时找不到字符串

时间:2011-12-14 16:14:17

标签: php

为什么它没有回归好?真奇怪。

<?php
$r = "<h3>Welcome</h3>";
if (strpos($r, "​Welcome") !== FALSE) {
    echo "Good";
}
?>

3 个答案:

答案 0 :(得分:9)

你看到小盒子了吗?这是UTF-8中的E2 80 8B,即零宽度空间 而这在源文本中并不存在。


enter image description here

答案 1 :(得分:1)

奇怪,它对我有用(见codepad):

<?php
$r = "<h3>Welcome</h3>";
if (strpos($r, "Welcome") !== FALSE) {
    echo "Good";
}
  

但是,我重写了字符串,因为在你的代码中它包含一个隐藏的字符。 ;)

答案 2 :(得分:1)

你的代码应该有效 - 逻辑很好。

然而,某处有一个有趣的角色 - 我猜你从某个地方复制/粘贴了这段代码?

当我将此页面的代码复制到我的编辑器中时,它会抱怨我的字符集中无法表示某个字符,并且strpos($r, "​Welcome")变为strpos($r, "?Welcome")

输入字符串不会发生这种情况,因此它们不匹配。