我可能用错了,问题是:我的php代码像这样被回显到页面上:<?php echo "<h1>" . htmlspecialchars($array['text']) . "</h1>" ?>
该变量在如下所示的html结构中从数据库回显
echo "<h1> Hello </h1>"这行得很好,但是一旦我回显了像"> text here"这样的东西,一切都会崩溃。文本出现在正文的开头,实际上我可以将JS注入其中,并且..它起作用了。
我不知道我做错了什么,是我用错了htmlspecialchars,还是其他地方出了问题?
发布于 2018-08-08 04:18:15
使用以下内容:
htmlspecialchars($string, ENT_COMPAT,'ISO-8859-1');这使得htmlspecialchars使用ISO-8859-1编码,我假设您正在使用这种编码。
根据htmlspecialchars docs的说法,关于名为encoding的第三个论点:
PHP如果省略,则编码的默认值会因使用的
版本而异。在PHP5.6和更高版本中,default_charset配置选项用作默认值。PHP 5.4和5.5将使用UTF-8作为默认值。早期版本的PHP使用ISO-8859-1。
https://stackoverflow.com/questions/51734420
复制相似问题