htmlspecialchars无法正常工作

时间:2018-08-07 19:49:21

标签: php htmlspecialchars

我可能用错了,问题是这样的: 我有这样的回显到页面的php代码,如下所示: <?php echo "<h1>" . htmlspecialchars($array['text']) . "</h1>" ?>

该变量以类似html的结构从数据库中回显

echo "<h1> Hello </h1>"可以正常工作,但是一旦我回显类似"> text here"的内容,一切都会中断。文本出现在正文的开头,我实际上可以将JS注入其中,然后..就可以了。

我不知道我在做什么错,我使用htmlspecialchars是错了还是其他地方的问题?

1 个答案:

答案 0 :(得分:2)

使用以下内容:

htmlspecialchars($string, ENT_COMPAT,'ISO-8859-1');

这使htmlspecialchars使用ISO-8859-1编码,我认为这是您使用的编码。

根据htmlspecialchars docs,关于名为encoding的第三个参数:

  

如果省略,则编码的默认值根据使用的PHP版本而有所不同。在PHP 5.6和更高版本中,default_charset配置选项用作默认值。 PHP 5.4和5.5将使用UTF-8作为默认值。 PHP的早期版本使用ISO-8859-1。