htmlspecialchars()
是 PHP 中一个非常有用的函数,用于将特殊字符转换为 HTML 实体。这个函数有四个参数,分别是:
string
:必需。需要转换的字符串。int
:可选。指定字符集。默认值为 ENT_QUOTES
,表示将双引号转换为 HTML 实体。其他可选值有:
ENT_NOQUOTES
:不转换任何字符(不推荐)ENT_HTML401
:根据 HTML 4.01 规范转换字符(不推荐)ENT_HTML5
:根据 HTML5 规范转换字符(推荐)bool
:可选。是否将单引号(')视为特殊字符并转换为 HTML 实体。默认值为 true
。int
:可选。指定转义深度。默认值为 null
,表示自动检测。这个参数主要用于处理嵌套的 HTML 结构。下面是一些使用 htmlspecialchars()
的示例:
// 使用默认设置
$string = '<script>alert("XSS")</script>';
echo htmlspecialchars($string); // 输出:<script>alert("XSS")</script>
// 设置字符集为 UTF-8
$string = '<script>alert("XSS")</script>';
echo htmlspecialchars($string, ENT_QUOTES, 'UTF-8'); // 输出:<script>alert("XSS")</script>
// 设置不转换单引号
$string = "O'Reilly";
echo htmlspecialchars($string, ENT_QUOTES, 'UTF-8', false); // 输出:O'Reilly
// 设置转义深度为 2
$string = '<div><span>Hello</span></div>';
echo htmlspecialchars($string, ENT_QUOTES, 'UTF-8', null, 2); // 输出:<div><span>Hello</span></div>
请注意,htmlspecialchars()
函数主要用于防止 XSS(跨站脚本)攻击。在使用这个函数时,请确保正确处理用户输入的数据。