js urlencode 20 php,PHP中的urlencode,rawurlencode和JS中的encodeURI,encodeURIComponent

«PHP中的urlencode,rawurlencode和JS中的encodeURI,encodeURIComponent»

48e95b85049ff667a924b3b3fcd8774e.png

PHP中的urlencode和rawurlencode»

二都的区别仅在” “空格上,rawurlencode()会把空格编码为%20,而urlencode会把空格编码为+。

JS中的encodeURI和encodeURIComponent»

encodeURI 方法不会对下列字符进行编码:”:”、”/”、”;” 和 “?”,而encodeURIComponent会编码这些字符。

urlencode与encodeURI»

首先,我们看下这4种编码方式针对ASCII的127个字符编码后的差别,显示代码如下:/**

* 生成urlencode,rawurlencode,encodeURI,encodeURIComponent的编码结果 2010-10-29 sz

* @author phppan.p#gmail.com http://www.phppan.com

* @package test

*/

header("Content-type:text/html;charset=utf-8");

echo <<

table {

cursor:default;

font-family:Verdana,Helvetica,sans-serif;

font-size:8pt;

}

td {

background:none repeat scroll 0 0 #EFEFEF;

text-align:center;

width:100px;

}

STYLE;

echo '

echo _tr(_td("ASCII") . _td("urlenocde") . _td("rawurlencode") . _td("encodeURI") . _td("encodeURIComponent"));

for ($i = 0; $i < 128; $i++) {

$ch = chr($i);

$td = _td($ch) . _td(urlencode($ch)) . _td(rawurlencode($ch));

$td .= _td(_encodeURI($ch)) . _td(_encodeURIComponent($ch));

echo _tr($td);}echo "

";

对比urlencode和encodeURI的不同,可以看到#$&+,/:;=?@这些符号编码结果不同,于是对于需要在PHP中编码后,给js的encodeURI使用的操作可以使用如下函数:/**

* urlencode适用于js版本 2010-10-29 sz

* @author phppan.p#gmail.com http://www.phppan.com

* @package test

*/

header("Content-type:text/html;charset=utf-8");

function urlencode_js($str) {

$str_len = strlen($str);

$new = array();

for ($i = 0; $i 

$ch = $str[$i];

if (strpos("#$&+,/:;=?@", $ch) !== FALSE) {

$new[] = $ch;

} else {

$new[] = urlencode($ch);

}

}

return implode("", $new);

}

$encode_str = urlencode_js("a汉bc中文 章+aa#$&+,/:;=?@a汉bc中文 章+aa");

echo <<

HTML;

die();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值