htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体.
htmlspecialchars()函数原型:
string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = "UTF-8" [, bool $double_encode = true ]]] )
htmlspecialchars()转换的字符包括
&(和号) 成为&
" (双引号) 成为 "
' (单引号) 成为 '
< (小于) 成为 <
> (大于) 成为 >
htmlspecialchars()支持的字符集列表
字符集 别名 描述
iso-8859-1 iso8859-1 西欧,latin-1
ISO-8859-5 ISO8859-5 Little used cyrillic charset (Latin/Cyrillic).
iso-8859-15 iso8859-15 西欧,latin-9。增加欧元符号,法语和芬兰语字母在 latin-1(iso-8859-1) 中缺失。
utf-8 ascii 兼容的多字节 8 位 unicode。
cp866 ibm866, 866 DOS 特有的西里尔编码。本字符集在 4.3.2 版本中得到支持。
cp1251 windows-1251, win-1251, 1251 windows 特有的西里尔编码。本字符集在 4.3.2 版本中得到支持。
cp1252 windows-1252, 1252 windows 特有的西欧编码。
KOI8-R koi8-ru, koi8r 俄语。本字符集在 4.3.2 版本中得到支持。
BIG5 950 繁体中文,主要用于中国台湾省。
GB2312 936 简体中文,中国国家标准字符集。
BIG5-HKSCS 繁体中文,附带香港扩展的 Big5 字符集。
Shift_JIS SJIS, 932 日语
EUC-JP EUCJP 日语
MacRoman Mac OS 使用的字符串。
'' An empty string activates detection from script encoding (Zend multibyte), default_charset and current locale (see nl_langinfo() and setlocale()), in this order. Not recommended.
Note: 其他字符集没有认可。将会使用默认编码并抛出异常。
htmlspecialchars()函数示例代码1:
<?php
$new = htmlspecialchars("<a href=/article/&/index.html", ENT_QUOTES);
echo $new; // <a href=/article/&/index.html
?>
htmlspecialchars()函数示例代码2:
<html>
<body>
<?php
$str = "John & 'Adams'";
echo htmlspecialchars($str, ENT_COMPAT);
echo "<br />";
echo htmlspecialchars($str, ENT_QUOTES);
echo "<br />";
echo htmlspecialchars($str, ENT_NOQUOTES);
?>
</body>
</html>
浏览器输出:
John & 'Adams'
John & 'Adams'
John & 'Adams'
如果在浏览器中查看源代码,会看到这些 HTML:
<html>
<body>
John & 'Adams'<br />
John & 'Adams'<br />
John & 'Adams'
</body>
</html>