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 相关文章推荐
用ODBC的分页显示
Oct 09 PHP
使用数据库保存session的方法
Oct 09 PHP
php横向重复区域显示二法
Sep 25 PHP
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
Oct 29 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
Apr 21 PHP
ThinkPHP实现多数据库连接的解决方法
Jul 01 PHP
为你总结一些php信息函数
Oct 21 PHP
php的闭包(Closure)匿名函数初探
Feb 14 PHP
php使用escapeshellarg时中文被过滤的解决方法
Jul 10 PHP
Yii中的cookie的发送和读取
Jul 27 PHP
php base64 编码与解码实例代码
Mar 21 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
Aug 01 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中养成7个面向对象的好习惯
2010/07/17 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
2017/06/02 PHP
js表格分页实现代码
2009/09/18 Javascript
简化版手机端照片预览组件
2015/04/13 Javascript
JS根据生日算年龄的方法
2015/05/05 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
3种js实现string的substring方法
2015/11/09 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
关于JavaScript和jQuery的类型判断详解
2016/10/08 Javascript
JS设置CSS样式的方式汇总
2017/01/21 Javascript
使用Vue完成一个简单的todolist的方法
2017/12/01 Javascript
JS实现访问DOM对象指定节点的方法示例
2018/04/04 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
2018/07/27 Javascript
jQuery 实现倒计时天,时,分,秒功能
2018/07/31 jQuery
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
2020/02/11 Javascript
微信小程序如何加载数据库真实数据的实现
2020/03/04 Javascript
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
在Python的web框架中配置app的教程
2015/04/30 Python
python 遍历列表提取下标和值的实例
2018/12/25 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
使用NumPy读取MNIST数据的实现代码示例
2019/11/20 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
python轮询机制控制led实例
2020/05/03 Python
20行代码教你用python给证件照换底色的方法示例
2021/02/05 Python
加拿大在线隐形眼镜和眼镜店:VisionPros
2019/10/06 全球购物
党的群众路线教育实践活动先进个人材料
2014/12/24 职场文书
争先创优个人总结
2015/03/04 职场文书
2015年发展党员工作总结报告
2015/03/31 职场文书
python实现web邮箱扫描的示例(附源码)
2021/03/30 Python
血轮眼轮回眼特效 html+css
2021/03/31 HTML / CSS
Django给表单添加honeypot验证增加安全性
2021/05/06 Python
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers