您的位置:首页 > 编程语言 > PHP开发

PHP中htmlentities,htmlspecialchars,urlencode和base64_encode的使用及区别

2015-10-09 14:36 931 查看
htmlentities,htmlspecialchars,urlencode和base64_encode这几个函数都是php中经常使用的编码函数,有时候会混淆他们的使用,这里介绍一下他们各自的使用及区别。

先说htmlentities,htmlspecialchars:

两个的主要作用都是:就是让浏览器输出html代码,不去解析该html代码了,比如说在发帖的时候,为了不让其输入的html代码生效,可以使用htmlspecialchars。

两者区别:htmlentities转换所有的html标记,htmlspecialchars只格式化& ‘ ” < 和 > 这几个特殊符号。

看下面的例子:

$str = '似水流年';


echo htmlentities($str).”

“;

echo htmlentities($str, ENT_COMPAT , “UTF-8″).”

“;

echo htmlspecialchars($str).”

“;

输出结果如下:

<a href=”http://z132.com”>似水æµ�å¹´</a>

<a href=”http://z132.com”>似水流年</a>

<a href=”http://z132.com”>似水流年</a>

urlencode作用:将字符串中除了 “-_.” 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码 与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方 式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode())不同。此函数便于将字符串编 码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页:

看下面的例子:

$url = 'http://www.baidu.com/s?wd=似水流年&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&rsv_sug3=1&rsv_sug=1&rsv_sug1=1&rsv_su

g4=21';


echo urlencode($url);

输出信息如下:

http%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3D%E4%BC%BC%E6%B0%B4%E6%B5%81%E5%B9%B4%26rsv_spt%3D1%26issp%3D1%26rsv_bp%3D0%26ie%3Dutf-8%26tn%3Dbaiduhome_pg%26rsv_sug3%3D1%26rsv_sug%3D1%26rsv_sug1%3D1%26rsv_sug4%3D21


base64_encode的作用是对给定的字符串使用base64编码,设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体就需要用到该函数来编码。据说Base64-encoded后的数据要比原始数据多占用 33% 左右的空间。看下面的例子:

echo base64_encode('base64编码');


输出信息如下:

YmFzZTY057yW56CB
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: