作者:穿越时空lily | 来源:互联网 | 2013-06-25 11:12
在php中有htmlentities和htmlspecialchars两个函数,在php手册上都是英文做的解释,其中在htmlentities函数的说明部分有这么一段英文
在php中有htmlentities和htmlspecialchars两个函数,在php手册上都是英文做的解释,其中在htmlentities函数的说明部分有这么一段英文:
This function is identical to htmlspecialchars() in all ways, except with htmlentities(), all characters which have HTML character entity equivalents are translated into these entities.
从这句话中我们也可以看出来这两个函数虽然基本功能差不多,但是还是有细微的差别在里面的。再仔细看htmlspecialchars函数里面的一段话:
The translations performed are:
‘&' (ampersand) becomes ‘&'
‘”‘ (double quote) becomes ‘”‘ when ENT_NOQUOTES is not set.
”' (single quote) becomes ”' only when ENT_QUOTES is set.
‘<' (less than) becomes ‘<'
‘>' (greater than) becomes ‘>'
可以了解到htmlspecialchars只转化上面这几个html代码,而htmlentities却会转化所有的html代码,连同里面的它无法识别的中文字符也给转化了。
我们可以拿一个简单的例子来做比较:
$str='
测试页面';
echo htmlentities($str);
$str='
测试页面';
echo htmlspecialchars($str);
这两段代码的区别很明显了.