phphtmlentities和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);
// 测试页面
结论是,有中文的时候,最好用 htmlspecialchars ,否则可能乱码
另外参考一下这个自定义函数
代码如下:
function my_excerpt( $html, $len ) {
// $html 应包含一个 HTML 文档。
// 本例将去掉 HTML 标记,javascript 代码
// 和空白字符。还会将一些通用的
// HTML 实体转换成相应的文本。
$search = array ("'
PHP之友评论