我有此代码:
$title = 'Alguém';
<h1><?php echo htmlentities($title, \ENT_QUOTES, 'UTF-8', false); ?></h1>
PS:这只是一个例子,在我当前的代码中,我从数据库中获得了$title
的值。
可以在网页上看到的结果:
<h1>Alguém</h1>
在view-source:
上可以看到的结果:
<h1>Alguém</h1>
为什么会这样?我是否正确使用htmlentities
?
答案 0 :(得分:1)
您的代码正常工作。 htmlentities
将html实体转换为一系列定义的字符,您的浏览器可以将这些字符解释为要在浏览器中显示的实体。这样做是为了防止恶意代码在您的脚本中运行。
例如:
在不使用html实体的情况下,此行代码将实际起作用。您的浏览器将代码行显示为:
<script>alert("I just hacked your html")</script>
当您使用htmlentities()
清理同一行代码时,它将用定义的一系列字符表示形式替换所有实体,浏览器将其解释为实体。这就是输出到浏览器的内容。
<script>alert("I just hacked your html")<
此脚本不会在您的浏览器中作为javascript运行。
这里是您可以阅读的链接,它将为您提供一些其他信息。谷歌上有很多信息对此进行了概述。
以下是html实体的列表: Entity list
希望有帮助。
答案 1 :(得分:0)
echo htmlentities($ title,ENT_QUOTES);