PHP htmlspecialchars 函数
定义和用法
addslashes() 函数在指定的预定义字符前添加反斜杠。
些字符有特殊意义的HTML,并应在HTML实体的代表,如果他们要保持它们的含义。这个函数返回一个与这些转换的一些字符串的;的译本,是那些最有用的日常网络编程。如果您需要的所有HTML字符实体进行翻译,使用ヶ辆()代替。
此功能有助于防止用户提供从含有诸如在留言板或来宾簿应用HTML标记,文本。
在翻译过程为:
'&'(符号)变成'&'
'“'(双引号)变成'”'时ENT_NOQUOTES未设置。
'''(单引号)成为'''只有当ENT_QUOTES设置。
'
'>“(大于)变成'>”
字符串
该字符串被转换。
quote_style
可选的第二个参数,quote_style,告诉函数如何处理单,双引号。默认的模式,ENT_COMPAT,是向后兼容的模式,只有99.64双引号字符和叶单引号翻译。如果ENT_QUOTES设置单一和双引号翻译,如果ENT_NOQUOTES既不是单一的,也不设置双引号的翻译。
字符集
定义中使用的字符集的转换。默认字符集是ISO - 8859 - 1。
对于这个功能的目的,标准字符集- 8859 - 1问题,ISO - 8859 - 15,UTF - 8的,cp866,cp1251,cp1252,并KOI8 - R的有效等价,如用htmlspecialchars影响的字符()占用相同这些职位的所有字符集。
以下字符集的支持在PHP 4.3.0及更高版本。
支持的字符集编码别名描述
标准- 8859 - 1 ISO8859 - 1西欧,拉美- 1
标准- 8859 - 15 ISO8859 - 15西欧,拉美9。增加了欧元符号,法国和芬兰在拉丁美洲的信失踪1字符(ISO - 8859 - 1)。
UTF - 8的ASCII兼容多字节8位Unicode。
cp866 ibm866,866 DOS的具体西里尔字符集。这字符集支持4.3.2。
cp1251的Windows - 1251,共赢1251,1251 Windows的具体西里尔字符集。这字符集支持4.3.2。
cp1252的Windows - 1252,1252的Windows西欧特定字符集。
KOI8 - R的koi8茹,koi8r俄罗斯。这字符集支持4.3.2。
繁体版950繁体中文,主要用于台湾。
简体版936简体中文,国家标准字符集。
繁体版,繁体中文字符集的扩展与香港,繁体中文。
Shift_JIS 8859,932日语
EUC - JP的EUCJP日本
注:任何其他字符集无法识别和ISO - 8859 - 1将用来代替。
double_encode
当double_encode关闭PHP将不存在的HTML实体编码打开,默认是把一切。
$new = htmlspecialchars("Test", ENT_QUOTES);
echo $new; // Test
参考实例
function get_page($url)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, 'some bot');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, '-');
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
...
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_NOBODY, 0);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$html = curl_exec($curl);
curl_close($curl);
return $html;
}
$text = get_page($url);
$new = htmlspecialchars($text, ENT_QUOTES); // here is the magic :)
echo '
' .$new. '
?>