我有一个这样的字符串:
$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上重现问题并且它可以正常工作。
所以我无法重现这个问题。
答案 0 :(得分:1)
事实证明。您的字符串使用html-entities编码。因此,您只需查看源代码或使用highlight_string($yourString)
即可看到此信息,然后您会看到:<
而不是<
。
要对其进行解码,只需使用html_entity_decode()
即可。例如:
$string = str_replace("<br>","<c>", html_entity_decode($string));
highlight_string($string);
答案 1 :(得分:-1)
它会替换<br>
的{{1}}。它只是显示为空白。如果您添加<c>
,则可以看到它已替换。
htmlspecialchars()