htmlspecialchars转换后,怎么正常输出内容?

问:

htmlspecialchars转义后,怎么正常输出内容?

比如 &符号,被转义为 &amp

答:

使用html_entity_decode  转回来即可。

举例:

把 HTML 实体转换为字符:

<?php
$str = "Bill &amp; &#039;Steve&#039;";
echo html_entity_decode($str, ENT_COMPAT); // 只转换双引号
echo "<br>";
echo html_entity_decode($str, ENT_QUOTES); // 转换双引号和单引号
echo "<br>";
echo html_entity_decode($str, ENT_NOQUOTES); // 不转换任何引号
?>

以上代码的 HTML 输出(查看源代码):

<!DOCTYPE html>
<html>
<body>
Bill & &#039;Steve&#039;<br>
Bill & 'Steve'<br>
Bill & &#039;Steve&#039;
</body>
</html>

以上代码的浏览器输出:

Bill & 'Steve'
Bill & 'Steve'
Bill & 'Steve'

解释:

  • ENT_COMPAT – 默认。仅编码双引号。
  • ENT_QUOTES – 编码双引号和单引号。
  • ENT_NOQUOTES – 不编码任何引号。

弊端:

可能引起xss安全问题,自行选择是否使用和使用位置。

海拔科技

自媒体人,喜欢网络,热爱研究。本站头条号:星河 熊掌号:海拔科技

相关推荐

解决“我们此时无法处理您的请求……”

在访问Google Adsense后台政策中心的时候,我们可能会看到这个错误提示:“ 我们此时无法处理您的请求,对于给您带来的不便之处,我们深表歉意。我们已向工程师通报了该问题,工程师将尽力为您解决。 ” 解决该问 …

WordPress时间函数the_time() 详细解析

之所以找the_time()函数的相关说明还是源于本站现在使用这个主题,刚刚发了一篇文章,被百度秒收,很开心,但是一看百度收录时间显示的是12小时前。 卧槽,这怎么回事,一看文章时间显示的真的是12小时之前,起 …

头条号发图文时上传不了图片该怎么办?

如果账号权限没问题,那么请从以下几个方面重试: 1、检查图片格式是否为头条认可的格式,如果不是请转换为jpg、png、bmp等通用格式; 2、检查自己的网络环境是否有问题,有些时候移动宽带会出现各种奇怪的问题 …