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 相关文章推荐
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
Apr 18 PHP
php 函数使用方法与函数定义方法
May 09 PHP
PHP面向对象法则
Feb 23 PHP
PHP 如何利用phpexcel导入数据库
Aug 24 PHP
PHP实现货币换算的方法
Nov 29 PHP
php匹配字符中链接地址的方法
Dec 22 PHP
迁移PHP版本到PHP7
Feb 06 PHP
php session的锁和并发
Jan 22 PHP
详解Yii2 之 生成 URL 的方法
Jun 16 PHP
使用PHP json_decode可能遇到的坑与解决方法
Aug 03 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
May 11 PHP
多个Laravel项目如何共用migrations详解
Sep 25 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
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
php文件操作实例代码
2012/05/10 PHP
浅析PHP中Collection 类的设计
2013/06/21 PHP
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
JS判断、校验MAC地址的2个实例
2014/05/05 Javascript
js操作模态窗口及父子窗口间相互传值示例
2014/06/09 Javascript
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
理解javascript正则表达式
2016/03/08 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
2016/03/31 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
2016/06/06 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
Python实现树的先序、中序、后序排序算法示例
2017/06/23 Python
Python上下文管理器和with块详解
2017/09/09 Python
Python内置函数——__import__ 的使用方法
2017/11/24 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
深度学习入门之Pytorch 数据增强的实现
2020/02/26 Python
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
LN-CC美国:伦敦时尚生活的缩影
2019/02/19 全球购物
Java如何获得ResultSet的总行数
2016/09/03 面试题
法院实习人员自我鉴定
2013/09/26 职场文书
小学校园活动策划
2014/01/30 职场文书
绩效管理实施方案
2014/03/19 职场文书
2014年党支部承诺书
2014/05/30 职场文书
道路交通事故赔偿协议书
2014/10/24 职场文书
党员转正介绍人意见
2015/06/03 职场文书
初中军训感想
2015/08/07 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书
新手初学Java List 接口
2021/07/07 Java/Android
Python实现学生管理系统并生成exe可执行文件详解流程
2022/01/22 Python