str_replace()没有按预期工作

时间:2015-07-30 09:35:25

标签: php string encoding str-replace html-entities

我有一个这样的字符串:

$string = "somehting<br><br>";

当我尝试这样str_replace()时:

echo str_replace("<br>","<c>",$string);

输出字符串根本没有变化。

我尝试了什么:

echo mb_detect_encoding($string); // returns UTF-8
var_dump(strpos($string, "<br>")); // bool(false)

我之前用html dom node class编辑了字符串,现在我真的不知道出了什么问题。

我尝试使用真正的字符串在sandbox.onlinephpfunctions.com上重现问题并且它可以正常工作。

所以我无法重现这个问题。

2 个答案:

答案 0 :(得分:1)

事实证明。您的字符串使用html-entities编码。因此,您只需查看源代码或使用highlight_string($yourString)即可看到此信息,然后您会看到:&lt;而不是<

要对其进行解码,只需使用html_entity_decode()即可。例如:

$string = str_replace("<br>","<c>", html_entity_decode($string));
highlight_string($string);

答案 1 :(得分:-1)

它会替换<br>的{​​{1}}。它只是显示为空白。如果您添加<c>,则可以看到它已替换。

htmlspecialchars()