background image

PHP 入门:PHP 中的 rawurlencode 与 urlencode

函数

本文是对 PHP 中的 rawurlencode 与 urlencode 函数进行了详细的分析介绍,需要的朋

友参考下

问题:

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