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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值