php 正確解碼javascript中通過escape編碼后的字符
更新時間:2010年01月28日 23:22:56 作者:
js的escape如何在PHP中來解呢?下面的這個函數(shù)可以正確的解析,網(wǎng)上有不少unescape的函數(shù),但好用的不多.
這是很久以前收集的一個,不知道誰寫的了,但經(jīng)過測試沒有問題~
JavaScript代碼
function phpUnescape($escstr)
{
preg_match_all("/%u[0-9A-Za-z]{4}|%.{2}|[0-9a-zA-Z.+-_]+/", $escstr, $matches);
$ar = &$matches[0];
$c = "";
foreach($ar as $val)
{
if (substr($val, 0, 1) != "%")
{
$c .= $val;
} elseif (substr($val, 1, 1) != "u")
{
$x = hexdec(substr($val, 1, 2));
$c .= chr($x);
}
else
{
$val = intval(substr($val, 2), 16);
if ($val < 0x7F) // 0000-007F
{
$c .= chr($val);
} elseif ($val < 0x800) // 0080-0800
{
$c .= chr(0xC0 | ($val / 64));
$c .= chr(0x80 | ($val % 64));
}
else // 0800-FFFF
{
$c .= chr(0xE0 | (($val / 64) / 64));
$c .= chr(0x80 | (($val / 64) % 64));
$c .= chr(0x80 | ($val % 64));
}
}
}
return $c;
}
escape編碼后:
%u6D4B%u8BD5www.dbjr.com.cn%22%22%27%27%3C%3E%26%26
解碼后:
測試www.dbjr.com.cn""''<>&&
JavaScript代碼
復(fù)制代碼 代碼如下:
function phpUnescape($escstr)
{
preg_match_all("/%u[0-9A-Za-z]{4}|%.{2}|[0-9a-zA-Z.+-_]+/", $escstr, $matches);
$ar = &$matches[0];
$c = "";
foreach($ar as $val)
{
if (substr($val, 0, 1) != "%")
{
$c .= $val;
} elseif (substr($val, 1, 1) != "u")
{
$x = hexdec(substr($val, 1, 2));
$c .= chr($x);
}
else
{
$val = intval(substr($val, 2), 16);
if ($val < 0x7F) // 0000-007F
{
$c .= chr($val);
} elseif ($val < 0x800) // 0080-0800
{
$c .= chr(0xC0 | ($val / 64));
$c .= chr(0x80 | ($val % 64));
}
else // 0800-FFFF
{
$c .= chr(0xE0 | (($val / 64) / 64));
$c .= chr(0x80 | (($val / 64) % 64));
$c .= chr(0x80 | ($val % 64));
}
}
}
return $c;
}
escape編碼后:
復(fù)制代碼 代碼如下:
%u6D4B%u8BD5www.dbjr.com.cn%22%22%27%27%3C%3E%26%26
解碼后:
復(fù)制代碼 代碼如下:
測試www.dbjr.com.cn""''<>&&
您可能感興趣的文章:
- php中json_encode不兼容JSON_UNESCAPED_UNICODE的解決方案
- PHP實現(xiàn)Javascript中的escape及unescape函數(shù)代碼分享
- 如何使用PHP實現(xiàn)javascript的escape和unescape函數(shù)
- php模擬js函數(shù)unescape的函數(shù)代碼
- 在PHP中實現(xiàn)Javascript的escape()函數(shù)代碼
- 用js進行url編碼后用php反解以及用php實現(xiàn)js的escape功能函數(shù)總結(jié)
- js中的escape及unescape函數(shù)的php實現(xiàn)代碼
- 把文本中的URL地址轉(zhuǎn)換為可點擊鏈接的JavaScript、PHP自定義函數(shù)
- 類似php的js數(shù)組的in_array函數(shù)自定義方法
- php自定義函數(shù)實現(xiàn)JS的escape的方法示例
相關(guān)文章
PHP實現(xiàn)根據(jù)數(shù)組的值進行分組的方法
這篇文章主要介紹了PHP實現(xiàn)根據(jù)數(shù)組的值進行分組的方法,涉及php數(shù)組的遍歷、判斷、賦值等相關(guān)操作技巧,需要的朋友可以參考下2017-04-04PHP實現(xiàn)對png圖像進行縮放的方法(支持透明背景)
這篇文章主要介紹了PHP實現(xiàn)對png圖像進行縮放的方法(支持透明背景),可實現(xiàn)php針對png圖像的縮放功能,且支持透明背景,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07PHP使用數(shù)組實現(xiàn)矩陣數(shù)學(xué)運算的方法示例
這篇文章主要介紹了PHP使用數(shù)組實現(xiàn)矩陣數(shù)學(xué)運算的方法,結(jié)合具體實例形式分析了php基于數(shù)組實現(xiàn)矩陣表示與運算的相關(guān)操作技巧,需要的朋友可以參考下2017-05-05fleaphp crud操作之find函數(shù)的使用方法
fleaphp crud操作之find函數(shù)的用法,需要的朋友可以參考下。2011-04-04php中OR與|| AND與&&的區(qū)別總結(jié)
以下是對php中OR與|| AND與&&的區(qū)別進行了詳細的總結(jié)介紹,需要的朋友可以過來參考下2013-10-10