php htmlentities和htmlspecialchars的区别

 PHP   高蒙   阅读(1908)   评论(0)   2016-03-27 18:28:51    php htmlentities() php htmlspecialchars() php htmlentities和htmlspecialchars的区别 


每次遇到htmlentities和htmlspecialchars的时候,我就要去查一下,因为太长了,没记住。

这两个函数在格式化带有英文字符的html代码的时候基本没啥问题,但是htmlentities对中文字符也不放过,这样得出来的结果是中文字符部分变为一堆乱码。

其实htmlentities和htmlspecialchars的功能都是一样的,即将预定义的字符转化为html实体。

但是htmlentities是对所有HTML定义的entity都不放过,包括各种特殊字符和中文,这样得出来的结果是中文字符部分变为一堆乱码。

主要作用:

就是让浏览器输出html代码,不去解析该html代码了,比如说在发文章的时候,为了不让其输入的html代码生效,可以使用htmlspecialchars。

两者区别:

htmlentities转换所有的html标记,htmlspecialchars只格式化& ' " < 和 > 这几个特殊符号。

例:

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

结果如下:

<a href="http://www.shuchengxian.com">php���</a>
<a href="http://www.shuchengxian.com">php点点通</a>
<a href="http://www.shuchengxian.com">php点点通</a>

右键查看html源码:

&lt;a href=&quot;www.shuchengxian.com&quot;&gt;php&ccedil;‚&sup1;&ccedil;‚&sup1;&eacute;€š&lt;/a&gt;<br>
&lt;a href=&quot;www.shuchengxian.com&quot;&gt;php点点通&lt;/a&gt;<br>
&lt;a href=&quot;www.shuchengxian.com&quot;&gt;php点点通&lt;/a&gt;

 




相关文章



我要评论


站长昵称:(*)

输入内容:


评论列表


高蒙

男,程序猿一枚

 

人生要是没有理想, 那跟一条咸鱼有什么分别。


关于我

  http://www.shuchengxian.com

高蒙个人博客是以PHP技术为主的程序员个人博客。博客主要发布php开发中遇到的问题以及解决办法,同时个人博客也分享网站模板素材,jquery插件等方面素材。


站点声明:相关侵权、举报、投诉及建议等,请发E-mail:936594075#qq.com(#替换成@)。

Copyright © 2018, www.shuchengxian.com, All rights reserved. 个人博客皖公网安备 34152302000022号 皖ICP备15015490号

关键词:个人博客,PHP博客,PHP博客程序,高蒙博客,高蒙个人博客,php程序员博客,程序员个人博客