PHP rawurlencode与urlencode函数的深入分析_php技巧

问题: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

时间: 2025-01-19 18:44:20

PHP rawurlencode与urlencode函数的深入分析_php技巧的相关文章

php htmlspecialchars()与shtmlspecialchars()函数的深入分析_php技巧

定义和用法htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体. 预定义的字符是:•& (和号) 成为 &•" (双引号) 成为 "•' (单引号) 成为 '•< (小于) 成为 <•> (大于) 成为 >语法htmlspecialchars(string,quotestyle,character-set) 参数 描述 string 必需.规定要转换的字符串. quotestyle 可选.规定如何编码单引号和双引号.

用PHP控制用户的浏览器--ob*函数的使用说明_php技巧

用PHP控制用户的浏览器--ob*函数的使用 /google 的广告条--> Output Control 函数可以让你自由控制脚本中数据的输出.它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况.输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用. 我们先举一个简单的例子,让大家对Output Control有一个大致的印象:Example 1. <?php ob_st

浅析rawurlencode()和urlencode()函数区别

  今天在阅读开源代码时发现了一个URL的编码函数:rawurlencode(),以前一直没有注意过,因为在平时的开发上主要使用的是 urlencode(),故专门研究了一番. 其实这两个函数的区别很简单,它们两个都会把URL中的非英文字符进行转义,替换成"%"后跟两位十六进制数,不同的是:rawurlencode 遵守是94年国际标准备忘录RFC 1738,对空格的转义是'%20′:而urlencode的编码实现的是传统做法,和POST表单数据一样会把空格转义成"+&quo

php的POSIX 函数以及进程测试的深入分析_php技巧

复制代码 代码如下: <?phpecho posix_getpid(); //8805sleep(10);?> 再用 #ps -ax 这个时候如果多开开个浏览器请求,就会发现Apache自动增加了几个新的进程 我们发现并非一直请求同一个进程 重启apache# /usr/local/apache2/bin/apachectl restart我们发现Apache又恢复到默认进程数.

PHP内置加密函数详解_php技巧

Md5()加密算法 方式: 单向加密 语法: md5(string $str [, bool $raw_output = false]) $str:原始字符串 $raw_output:如果可选的raw_output被设置为true, 那么md5报文摘要将以16字节长度的原始二进制格式返回. 返回以32位字符十六进制数字形式返回散列值 md5二次加密:md5(md5($string, true)) Crypt()加密算法 方式: 单向加密 语法: string crypt(string $str[

Yii使用smsto短信接口的函数demo示例_php技巧

本文实例讲述了Yii使用smsto短信接口的函数.分享给大家供大家参考,具体如下: public function smsto($telphone,$message) { //短信接口用户名 $uid,如果没有或不能发送请与客服联系 $uid = 'zyd'; //短信接口密码 $passwd $passwd = '123456'; //发送到的目标手机号码 $telphone $telphone = $telphone;//此处改成自己的手机号 //短信内容 $message $message

PHP mysqli_free_result()与mysqli_fetch_array()函数详解_php技巧

PHP mysqli_free_result()与mysqli_fetch_array()函数 mysql_free_result() 仅需要在考虑到返回很大的结果集时会占用多少内存时调用.在脚本结束后所有关联的内存都会被自动释放. 在我们执行完SELECT语句后,释放游标内存是一个很好的习惯. .可以通过PHP函数mysql_free_result()来实现内存的释放. //定义头文件,字符格式 header("Content-type:text/html;charset=utf-8"

简单了解WordPress开发中update_option()函数的用法_php技巧

函数介绍 update_option()用于更新数据表中存在的选项值.该函数可取代add_option,但不及add_option灵活.update_option会检查并判断选项是否已经存在.如果不存在,用add_option ('option_name', 'option_value')添加选项.除非用户需要指定add_option的选项参数,否则update_option()是一个可同时添加和更新选项的两用函数. 注意:wp_load_alloptions将要加载(或不加载)某个选项时,up

在WordPress的后台中添加顶级菜单和子菜单的函数详解_php技巧

添加设置页面-add_menu_page函数add_menu_page(),这个函数是往后台添加顶级菜单先,也就是和"外观"."插件"等一样的顶级菜单. 函数介绍如下: <?php add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position ); //page_title页面title标签信息 //$menu_title 菜单