htmlspecialchars() 转义函数的详细用法
htmlspecialchars() 函数可以把一些预定义的字符转换为 HTML转义字符。
htmlspecialchars() 函数预定义的html转义字符有:
& (和号) 成为 & " (双引号) 成为 "(当flags没有被设置为ENT_QUOTES的时候) ' (单引号) 成为 '(只在当flags被设置为ENT_QUOTES的时候) < (小于) 成为 < > (大于) 成为 >
函数语法:
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);