echo+htmlentities 不能正常工作?
echo+htmlentities is not working propely?
我有这个代码:
$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
正确吗?
echo htmlentities($title, ENT_QUOTES);
您的代码运行正常。 htmlentities
将 html 实体转换为定义的一系列字符,您的浏览器可以将这些字符解释为您要在浏览器中显示的实体。这样做是为了防止恶意代码 运行 在您的脚本中。
举个例子:
如果不使用 html 个实体,这行代码将实际工作。您的浏览器将代码行视为:
<script>alert("I just hacked your html")</script>
当您使用 htmlentities()
清理同一行代码时,它会将所有实体替换为浏览器解释为实体的已定义字符表示系列。这就是输出到浏览器的内容。
<script>alert("I just hacked your html")<
此脚本不会在您的浏览器中获得 运行 作为 javascript。
这里有一个 link,您可以阅读它,它会为您提供一些额外的信息。关于 google 的大量信息概述了这一点。
这是 html 个实体的列表:
Entity list
希望对您有所帮助。
我有这个代码:
$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
正确吗?
echo htmlentities($title, ENT_QUOTES);
您的代码运行正常。 htmlentities
将 html 实体转换为定义的一系列字符,您的浏览器可以将这些字符解释为您要在浏览器中显示的实体。这样做是为了防止恶意代码 运行 在您的脚本中。
举个例子:
如果不使用 html 个实体,这行代码将实际工作。您的浏览器将代码行视为:
<script>alert("I just hacked your html")</script>
当您使用 htmlentities()
清理同一行代码时,它会将所有实体替换为浏览器解释为实体的已定义字符表示系列。这就是输出到浏览器的内容。
<script>alert("I just hacked your html")<
此脚本不会在您的浏览器中获得 运行 作为 javascript。
这里有一个 link,您可以阅读它,它会为您提供一些额外的信息。关于 google 的大量信息概述了这一点。
这是 html 个实体的列表: Entity list
希望对您有所帮助。