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 项目的方法
Jan 02 PHP
用PHP调用Oracle存储过程的方法
Sep 12 PHP
PHP安全技术之 实现php基本安全
Sep 04 PHP
微博短链接算法php版本实现代码
Sep 15 PHP
php中的注释、变量、数组、常量、函数应用介绍
Nov 16 PHP
php获取当前时间的毫秒数的方法
Jan 26 PHP
php二分查找二种实现示例
Mar 12 PHP
PHP判断表单复选框选中状态完整例子
Jun 24 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
Feb 03 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
Sep 11 PHP
Laravel框架实现超简单的分页效果示例
Feb 08 PHP
laravel框架select2多选插件初始化默认选中项操作示例
Feb 18 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中图片等比缩放的实例
2013/03/24 PHP
PHP利用MySQL保存session的实现思路及示例代码
2014/09/09 PHP
php如何执行非缓冲查询API
2016/07/22 PHP
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
PHPstorm启用自动换行的方法详解(IDE)
2020/09/17 PHP
JS加jquery简单实现标签元素的显示或隐藏
2013/09/23 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
javascript日期格式化方法汇总
2015/10/04 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
2017/03/09 Javascript
AngularJS前端页面操作之用户修改密码功能示例
2017/03/27 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
详解javascript设计模式三:代理模式
2019/03/25 Javascript
微信小程序简单的canvas裁剪图片功能详解
2019/07/12 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
2019/09/06 Javascript
layui实现下拉复选功能的例子(包括数据的回显与上传)
2019/09/24 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
2019/10/15 Javascript
jQuery轮播图功能制作方法详解
2019/12/03 jQuery
vue实现折线图 可按时间查询
2020/08/21 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
python中日志logging模块的性能及多进程详解
2017/07/18 Python
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
关于numpy数组轴的使用详解
2019/12/05 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
如何利用Python 进行边缘检测
2020/10/14 Python
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
PatPat阿根廷:妈妈们的购物平台
2019/05/30 全球购物
什么是makefile? 如何编写makefile?
2012/08/08 面试题
小学生自我评价范例
2013/09/24 职场文书
养殖行业的创业计划书
2014/01/05 职场文书
安全责任书范本
2014/04/15 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
公司租车协议书
2015/01/29 职场文书
详解缓存穿透击穿雪崩解决方案
2021/05/28 Redis
python脚本框架webpy模板赋值实现
2021/11/20 Python
十大最强火系宝可梦,喷火龙上榜,第一名有双火属性
2022/03/18 日漫