php htmlspecialchars函数是一个非常重要的函数,它可以将特殊字符转换为 HTML 实体,从而有效地防止跨站脚本攻击(XSS)。
htmlspecialchars() 函数接受三个参数:字符串、实体类型和字符集。其中,字符串是必需的参数,它表示要转换的字符串。实体类型是可选的参数,它表示要使用的实体标记。如果不提供该参数,则使用 ENT_COMPAT 实体标记。最后一个参数是字符集,它表示要使用的字符集。如果不提供该参数,则使用内部字符集。
$str = "<script>alert('Hello World!')</script>"; echo htmlspecialchars($str); // 输出: <script>alert('Hello World!')</script>
上面代码中我们将一个 JavaScript 脚本作为字符串传递到 htmlspecialchars() 函数中。该函数将特殊 HTML 字符转义成 HTML 实体并返回新的字符串。因此上面代码会返回一个新的字符串 <script>alert('Hello World!')</script> ,其中所有特殊 HTML 字符都已被转义成 HTML 实体了。
PHP String 参考手册
把预定义的字符 "<" (小于)和 ">" (大于)转换为 HTML 实体:
上面代码的 HTML 输出如下(查看源代码):
上面代码的浏览器输出如下:
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。
预定义的字符是:
提示:要把特殊的 HTML 实体转换回字符,请使用 htmlspecialchars_decode() 函数。
参数 | 描述 |
---|---|
string | 必需。规定要转换的字符串。 |
flags | 可选。规定如何处理引号、无效的编码以及使用哪种文档类型。 可用的引号类型:
无效的编码:
规定使用的文档类型的附加 flags:
|
character-set | 可选。一个规定了要使用的字符集的字符串。 允许的值:
注释:在 PHP 5.4 之前的版本,无法被识别的字符集将被忽略并由 ISO-8859-1 替代。自 PHP 5.4 起,无法被识别的字符集将被忽略并由 UTF-8 替代。 |
double_encode | 可选。一个规定了是否编码已存在的 HTML 实体的布尔值。
|
返回值: | 返回已转换的字符串。 如果 string 包含无效的编码,则返回一个空的字符串,除非设置了 ENT_IGNORE 或者 ENT_SUBSTITUTE 标志。 |
---|---|
PHP 版本: | 4+ |
更新日志: | 在 PHP 5 中,character-set 参数的默认值改为 UTF-8。 在 PHP 5.4 中,新增了:ENT_SUBSTITUTE、ENT_DISALLOWED、ENT_HTML401、ENT_HTML5、ENT_XML1 和 ENT_XHTML。 在 PHP 5.3 中,新增了 ENT_IGNORE。 在 PHP 5.2.3 中,新增了 double_encode 参数。 在 PHP 4.1 中,新增了 character-set 参数。 |
把一些预定义的字符转换为 HTML 实体:
上面代码的 HTML 输出如下(查看源代码):
上面代码的浏览器输出如下:
把双引号转换为 HTML 实体:
上面代码的 HTML 输出如下(查看源代码):
上面代码的浏览器输出如下:
PHP sha1_file() 函数PHP String 参考手册实例 计算文本文件 test.txt 的 SHA-1 散列:?php $filename = test.txt; $sha1file = ...
PHP jdtounix() 函数PHP Calendar 参考手册实例 把格利高里历法的日期转换为儒略日计数,然后把儒略日计数转换为 Unix 时间戳:?...
PHP ftp_close() 函数 完整的 PHP FTP 参考手册定义和用法 ftp_close() 函数关闭 FTP 连接。 语法ftp_close(ftp_connection)参数...
PHP ftp_mdtm() 函数 完整的 PHP FTP 参考手册定义和用法 ftp_mdtm() 函数返回指定文件的最后修改时间。 该函数将以 Unix 时间戳...
PHP ftp_set_option() 函数 完整的 PHP FTP 参考手册定义和用法 ftp_set_option() 函数设置 FTP 连接的各种运行时选项。 如果成...