htmlspecialchars()函数的作用,用简单的例子告诉你具体用法!
htmlspecialchars把HTML中的几个特殊字符转义成HTML Entity(格式:&xxxx;)形式,包括(&),(‘),(“),(<),(>)五个字符,用来过滤$GET,$POST,$COOKIE数据,预防XSS。
假设有一个文本框用于输入用户的评论内容,并且该评论会被展示在页面上。为了避免用户输入恶意的 HTML 标签或者脚本,我们可以对用户输入的评论内容进行过滤和转义。具体的代码如下:
<form action="submit.php" method="post">
<label for="comment">请发表评论:</label>
<textarea id="comment" name="comment"></textarea>
<input type="submit" value="提交评论" onclick="save()">
</form>
在 submit.php
中,我们可以使用 htmlspecialchars()
函数对提交的评论内容进行转义,例如:
if (isset($_POST['comment'])) {
$comment = htmlspecialchars($_POST['comment'], ENT_QUOTES, 'UTF-8'); // 将评论内容插入数据库等操作
}
在上述代码中,htmlspecialchars()
函数的第一个参数表示需要转义的字符串,第二个参数 ENT_QUOTES
表示同时转义单引号和双引号,第三个参数 UTF-8
表示字符集为 UTF-8。该函数会将输入的评论内容中的 HTML 特殊字符(例如 <
, >
, &
, '
, "
等)转换为对应的 HTML 实体,从而避免了恶意标签的注入和 XSS 攻击。
例如,如果用户输入了如下评论内容:
<script>alert("恶意攻击");</script>
经过转义后,该评论内容会变成:
<script>alert("恶意攻击");</script>
这样,在页面上展示该评论时,就不会执行恶意脚本了,而是直接展示为字符串。