51dev.com IT技术开发者社区

51dev.com 技术开发者社区

PHP中htmlentities和htmlspecialchars的使用及区别

IT猿阅读(59)2019-11-01 收藏0次评论

每次去使用的时候都去查手册,我也不记得查了多少次了,顺便记录下,htmlentities和htmlspecialchars的功能都是一样的,即将预定义的字符转化为html实体。
主要作用:就是让浏览器输出html代码,不去解析该html代码了,比如说在发帖的时候,为了不让其输入的html代码生效,可以使用htmlspecialchars
两者区别:htmlentities转换所有的html标记,htmlspecialchars只格式化& ' " < 和 > 这几个特殊符号。

PHP实例:


    $str = 'php点点通';
    //不指定编码,中文会乱码
    echo htmlentities($str)."
";
    echo htmlentities($str, ENT_COMPAT , "UTF-8")."
";
    //因为html只转义预定义的几个字符,所以不用指定编码了,建议使用htmlspecialchars
    echo htmlspecialchars($str);
?>

结果如下:

php���
php点点通
php点点通

右键查看html源码:

<a href="www.51dev.com">php点点通</a>
<a href="www.51dev.com">php点点通</a>
<a href="www.51dev.com">php点点通</a>

以上就是PHP中htmlentities和htmlspecialchars的使用及区别的全部内容。