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-accelerator网站加速PHP缓冲的方法
Jul 30 PHP
简化php模板页面中分页代码的解析
Feb 06 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
php获取远程文件内容的函数
Nov 02 PHP
php从身份证获取性别和出生年月
Feb 09 PHP
几行代码轻松实现PHP文件打包下载zip
Mar 01 PHP
php删除一个路径下的所有文件夹和文件的方法
Feb 07 PHP
PHP有序表查找之插值查找算法示例
Feb 10 PHP
php爬取天猫和淘宝商品数据
Feb 23 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
Feb 08 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
Feb 25 PHP
laravel实现简单用户权限的示例代码
May 28 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
php的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
2015/11/10 PHP
PHP实现的数组和XML文件相互转换功能示例
2018/03/15 PHP
prototype 的说明 js类
2006/09/07 Javascript
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
JQUERY 浏览器判断实现函数
2009/08/20 Javascript
extjs实现选择多表自定义查询功能 前台部分(ext源码)
2011/12/20 Javascript
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
2013/04/16 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
Jquery中的$.each获取各种返回类型数据的使用方法
2015/05/03 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
2016/03/25 Javascript
JS弹出新窗口被拦截的解决方法
2016/08/09 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
2016/09/29 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
jQuery-ui插件sortable实现自由拖动排序
2018/12/01 jQuery
ES6的Fetch异步请求的实现方法
2018/12/07 Javascript
JS实现数组深拷贝的方法分析
2019/03/06 Javascript
vue使用keep-alive实现组件切换时保存原组件数据方法
2020/10/30 Javascript
python解决字典中的值是列表问题的方法
2013/03/04 Python
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
Python multiprocessing多进程原理与应用示例
2019/02/28 Python
Python3的socket使用方法详解
2020/02/18 Python
python实现数据结构中双向循环链表操作的示例
2020/10/09 Python
顶丰TOPPIK台湾官网:增发纤维假发,告别秃发困扰
2018/06/13 全球购物
电脑饰品店的创业计划书
2014/01/21 职场文书
知识竞赛主持词
2014/03/26 职场文书
社区党员志愿服务活动方案
2014/08/18 职场文书
四年级数学上册教学计划
2015/01/20 职场文书
2016领导干部廉洁自律心得体会
2016/01/13 职场文书
学习师德师风的心得体会(2篇)
2019/10/08 职场文书
Python使用random模块实现掷骰子游戏的示例代码
2021/04/29 Python