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 之入门篇
Dec 04 PHP
php桌面中心(一) 创建数据库
Mar 11 PHP
apache+php+mysql安装配置方法小结
Aug 01 PHP
PHP中strtotime函数使用方法分享
Jan 10 PHP
PHP类的静态(static)方法和静态(static)变量使用介绍
Feb 19 PHP
PHP生成Gif图片验证码
Oct 27 PHP
PHP判断数据库中的记录是否存在的方法
Nov 14 PHP
PHP用反撇号执行外部命令
Apr 14 PHP
PHP 错误处理机制
Jul 06 PHP
基于PHP常用文件函数和目录函数整理
Aug 17 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 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
Memcache 在PHP中的使用技巧
2010/02/08 PHP
PHP 开发环境配置(Zend Server安装)
2010/04/28 PHP
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
js页面跳转常用的几种方式
2010/11/25 Javascript
jquery解决图片路径不存在执行替换路径
2013/02/06 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
Javascript验证方法大全
2015/09/21 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
2016/07/08 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
2016/10/28 Javascript
微信小程序 支付简单实例及注意事项
2017/01/06 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
jQuery实现左右滑动的toggle方法
2018/03/03 jQuery
Element的el-tree控件后台数据结构的生成以及方法的抽取
2020/03/05 Javascript
Javascript如何递归遍历本地文件夹
2020/08/06 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
2020/11/07 Javascript
详解实现vue的数据响应式原理
2021/01/20 Vue.js
[02:21]十步杀一人,千里不留行——DOTA2全新英雄天涯墨客展示
2018/08/29 DOTA
pytorch 共享参数的示例
2019/08/17 Python
基于Python绘制个人足迹地图
2020/06/01 Python
django inspectdb 操作已有数据库数据的使用步骤
2021/02/07 Python
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
美国孩之宝玩具官网:Hasbro Pulse
2019/06/24 全球购物
英国排名第一的LED灯泡网站:LED Bulbs
2019/09/03 全球购物
请用Python写一个获取用户输入数字,并根据数字大小输出不同信息的脚本
2014/05/20 面试题
中专生自我鉴定书范文
2013/12/28 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
民主评议党员工作总结
2014/10/20 职场文书
中秋节慰问信
2015/02/15 职场文书
理想国读书笔记
2015/06/25 职场文书
JavaScript实现优先级队列
2021/12/06 Javascript
Python测试框架pytest核心库pluggy详解
2022/08/05 Golang