php escape URL編碼
更新時間:2008年12月10日 12:24:14 作者:
php提供的URL編碼函數(shù)是基于字節(jié)的,對由ie的javascript函數(shù)escape編碼的數(shù)據(jù)就無能為力了。
徐祖寧的php版的escape/unescape函數(shù)
function escape($str) {
preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(ord($v[0]) < 128)
$ar[$k] = rawurlencode($v);
else
$ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v));
}
return join("",$ar);
}
function unescape($str) {
$str = rawurldecode($str);
preg_match_all("/(?:%u.{4})|.+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(substr($v,0,2) == "%u" && strlen($v) == 6)
$ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4)));
}
return join("",$ar);
}
復制代碼 代碼如下:
function escape($str) {
preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(ord($v[0]) < 128)
$ar[$k] = rawurlencode($v);
else
$ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v));
}
return join("",$ar);
}
function unescape($str) {
$str = rawurldecode($str);
preg_match_all("/(?:%u.{4})|.+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(substr($v,0,2) == "%u" && strlen($v) == 6)
$ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4)));
}
return join("",$ar);
}
您可能感興趣的文章:
- escape unescape的php下的實現(xiàn)方法
- php utf-8轉(zhuǎn)unicode的函數(shù)
- php 正確解碼javascript中通過escape編碼后的字符
- php UTF-8、Unicode和BOM問題
- PHP下escape解碼函數(shù)的實現(xiàn)方法
- 在PHP中實現(xiàn)Javascript的escape()函數(shù)代碼
- PHP中正則表達式對UNICODE字符碼的匹配方法
- 解析php中的escape函數(shù)
- 如何使用PHP實現(xiàn)javascript的escape和unescape函數(shù)
- 淺析PHP中的UNICODE 編碼與解碼
- PHP函數(shù)addslashes和mysql_real_escape_string的區(qū)別
- PHP解碼unicode編碼的中文字符代碼分享
- PHP解密Unicode及Escape加密字符串

