反转 htmlspecialchars

40

这可能看起来像一个简单的问题,但我在存档中找不到它。

如何撤销htmlspecialchars的效果?

我尝试了类似于以下的东西:

$trans_tbl = get_html_translation_table (HTML_ENTITIES);
$trans_tbl = array_flip ($trans_tbl);
$html = strtr ($html, $trans_tbl);

但是它没有起作用。有简单的方法来做到这一点吗?


1
阅读手册,它会告诉你所有与你正在查看的函数有关的函数,在“参见”部分中这是htmlspecialchars()的该部分 - Manuel
4
此问题似乎不适合讨论,因为答案可以在手册中找到。 - Ja͢ck
4个回答

80
使用htmlspecialchars_decode()函数。
<?php
$str = "<p>this -&gt; &quot;</p>\n";

echo htmlspecialchars_decode($str);

// note that here the quotes aren't converted
echo htmlspecialchars_decode($str, ENT_NOQUOTES);
?>

参考 - PHP官方文档


4
例子:

例子:

echo htmlspecialchars_decode(htmlspecialchars('your "strange" text with characters like !"/$%?&*'))

它将回显:

您的“奇怪”文本,其中包含诸如!“/$ %? & *之类的字符。

这是一种编码/解码的示例。它有效地工作。


4
你需要使用htmlspecialchars_decode()。请查看PHP文档
$html = htmlspecialchars_decode( $html, ENT_NOQUOTES );

0

从我的理解来看,您需要使用htmlspecialchars_decode函数 - 文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接