htmlspecialchars() 转义函数的详细用法

网络整理 - 06-27

htmlspecialchars() 函数可以把一些预定义的字符转换为 HTML转义字符。

htmlspecialchars() 函数预定义的html转义字符有:

& (和号) 成为 &amp; " (双引号) 成为 &quot;(当flags没有被设置为ENT_QUOTES的时候) ' (单引号) 成为 &#039;(只在当flags被设置为ENT_QUOTES的时候) < (小于) 成为 &lt; > (大于) 成为 &gt;

函数语法:

string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )

看起来比较复杂,很多都是可选参数,我们常用的只有:

ENT_COMPAT 转义双引号,不转义单引号 ENT_QUOTES 转义单引号和双引号 ENT_NOQUOTES 不转义单引号和双引号 ENT_HTML401 使用HTML 4.01处理html

默认是ENT_COMPAT | ENT_HTML401   使用html4.01,转义双引号,不转义单引号。

php html转义实例:

<?php $str = "itjsxx & '.com'"; echo htmlspecialchars($str, ENT_COMPAT); echo "<br />"; echo htmlspecialchars($str, ENT_QUOTES); echo "<br />"; echo htmlspecialchars($str, ENT_NOQUOTES); ?>

由上可见,如果想完全避免单引号和双引号的可能引起的html异常,我们必须把它们全部转义

htmlspecialchars($str, ENT_QUOTES);