Php 将HTML实体转换为其适用的字符
输出相同:Php 将HTML实体转换为其适用的字符,php,html,Php,Html,输出相同: $str = '&lt;div style="text-align:center"&gt;&lt;img src="http://image.gif" border="0"&gt;'; echo html_entity_decode($str,ENT_COMPAT, 'UTF-8'); 我期待着: <div style="text-align:center"><img src
$str = '&lt;div style="text-align:center"&gt;&lt;img src="http://image.gif" border="0"&gt;';
echo html_entity_decode($str,ENT_COMPAT, 'UTF-8');
我期待着:
<div style="text-align:center"><img src="http://image.gif" border="0">
尝试使用“htmlspecialchars\u decode()”而不是“html\u entity\u decode()”
这是双重编码,因此您需要解码两次
&
需要解码到和以获得
等
<div style="text-align:center"><img src="http://image.gif" border="0"></div>
如果正在进行编码,请查看htmlspecialchars()
和htmlentities()
的$double\u encode
参数
如果多次编码,则可以使用:
echo html_entity_decode(html_entity_decode($str));
您需要解码两次,因为&
需要解码到&
才能获得
等。我使用的易趣API以这种格式返回所有描述,有时甚至双重解码也不会转换实体,有没有可靠的方法可以重复执行,直到所有实体都被转换?我使用的易趣API以这种格式返回所有描述,有时,即使双重解码也不能转换实体,有没有可靠的方法可以重复执行,直到所有实体都转换完毕?转换后的实体是:&
、“
(未设置ENT#NOQUOTES时)、&
(设置ENT#QUOTES时)、
和
。使用和不使用ENT#NOQUOTES
进行了尝试,结果仍然是一样的。我在我的测试环境中使用了上述方法进行了此操作。结果很好。
while(($str = html_entity_decode($str)) != $str) {}
echo $str;