PHP rawurlencode与urlencode函数的深入分析


Posted in PHP onJune 08, 2013

问题:2个函数都是针对字符串转义使其适合做文件名。该用哪个?哪个更标准?

结论:
rawurlencode遵守是94年国际标准备忘录RFC 1738,
urlencode实现的是传统做法,和上者的主要区别是对空格的转义是'+'而不是'%20'
javascript的encodeURL也是94年标准,

而javascript的escape是另一种用"%xxx"标记unicode编码的方法。

推荐在PHP中使用用rawurlencode。弃用urlencode

样例
source:

超级无敌的人sadha sajdh数据样本sdls fhejrthcxzb.file.jpeg

PHP urlencode:
%E8%B6%85%E7%BA%A7%E6%97%A0%E6%95%8C%E7%9A%84%E4%BA%BAsadha+sajdh%E6%95%B0%E6%8D%AE%E6%A0%B7%E6%9C%ACsdls+fhejrthcxzb.file.jpeg

PHP rawurlencode:
%E8%B6%85%E7%BA%A7%E6%97%A0%E6%95%8C%E7%9A%84%E4%BA%BAsadha%20sajdh%E6%95%B0%E6%8D%AE%E6%A0%B7%E6%9C%ACsdls%20fhejrthcxzb.file.jpeg

Javascript encodeURI:
%E8%B6%85%E7%BA%A7%E6%97%A0%E6%95%8C%E7%9A%84%E4%BA%BAsadha%20sajdh%E6%95%B0%E6%8D%AE%E6%A0%B7%E6%9C%ACsdls%20fhejrthcxzb.file.jpeg

Javascript escape:
%u8D85%u7EA7%u65E0%u654C%u7684%u4EBAsadha%20sajdh%u6570%u636E%u6837%u672Csdls%20fhejrthcxzb.file.jpeg

PHP 相关文章推荐
PHP新手入门学习方法
May 08 PHP
基于MySQL分区性能的详细介绍
May 02 PHP
php Hex RGB颜色值互换的使用
May 10 PHP
PHP函数addslashes和mysql_real_escape_string的区别
Apr 22 PHP
跟我学Laravel之请求与输入
Oct 15 PHP
php判断文件上传类型及过滤不安全数据的方法
Dec 17 PHP
详解WordPress开发中的get_post与get_posts函数使用
Jan 04 PHP
PHP中子类重载父类的方法【parent::方法名】
May 06 PHP
php简单的上传类分享
May 15 PHP
/etc/php-fpm.d/www.conf 配置注意事项
Feb 04 PHP
ThinkPHP框架分布式数据库连接方法详解
Mar 14 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
PHP跳转页面的几种实现方法详解
Jun 08 #PHP
利用php递归实现无限分类 格式化数组的详解
Jun 08 #PHP
如何利用php array_multisort函数 对数据库结果进行复杂排序
Jun 08 #PHP
php引用返回与取消引用的详解
Jun 08 #PHP
PHP stripos()函数及注意事项的分析
Jun 08 #PHP
php自动加载机制的深入分析
Jun 08 #PHP
深入理解curl类,可用于模拟get,post和curl下载
Jun 08 #PHP
You might like
【星际争霸1】人族1v7家ZBath
2020/03/04 星际争霸
在PHP中使用XML
2006/10/09 PHP
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
mac下多个php版本快速切换的方法
2016/10/09 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
jquery 分页控件实现代码
2009/11/30 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
jquery实现倒计时效果
2015/12/14 Javascript
js滑动提示效果代码分享
2016/03/10 Javascript
浅析jquery unbind()方法移除元素绑定的事件
2016/05/24 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
浅析bootstrap原理及优缺点
2017/03/19 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
微信小程序对接七牛云存储的方法
2017/07/30 Javascript
node 利用进程通信实现Cluster共享内存
2017/10/27 Javascript
vue 项目常用加载器及配置详解
2018/01/22 Javascript
SpringBoot在yml配置文件中配置druid的操作
2020/11/16 Javascript
Python中的迭代器漫谈
2015/02/03 Python
Python中read()、readline()和readlines()三者间的区别和用法
2017/07/30 Python
pyinstaller打包找不到文件的问题解决
2020/04/15 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
Charles & Colvard官网:美国莫桑石品牌
2019/06/05 全球购物
全国税务系统先进集体事迹材料
2014/05/19 职场文书
无毒社区工作方案
2014/05/23 职场文书
学校班班通实施方案
2014/06/11 职场文书
应届生找工作求职信
2014/06/24 职场文书
关于读书的活动方案
2014/08/14 职场文书
名人演讲稿范文
2014/09/16 职场文书
出纳试用期自我评价
2015/03/10 职场文书
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL