使用 PHP 解譯 javascript escape() 編碼過的字串
来源:互联网 发布:120dvd域名改成什么了 编辑:程序博客网 时间:2024/05/01 12:31
PHP 跟 Javascript 都有 HTML encoding 的函式,編碼過的結果雖然類似,但是還是有些微的不同,所以不能互轉。
二者的差異可以可參考:
http://php.weblogs.com/php_jscript_vbscript_1
節錄如下:
PHP:
urlencode( ) All punctuation, accented characters, and any other non-ASCII characters are replaced with %xx encoding. Spaces converted to +.
urldecode( )All punctuation, accented characters, and any other non-ASCII characters are replaced with %xx encoding. Spaces converted to +.
Javascript:
escape(str) All spaces, punctuation, accented characters, and any other non-ASCII characters are replaced with %xx encoding
那要如何用 PHP 來讀取 escape() 編碼過的字串呢?
可以用以下的方式來讀取 (範例為 Unicode 解譯為 big5)
修改自:http://vivian.stripper.jp/index.php?itemid=100
$str = uniDecode($str,'big-5');
function uniDecode($str,$charcode){
$text = preg_replace_callback("/%u[0-9A-Za-z]{4}/",array(&$this,"toUtf8"),$str);
return mb_convert_encoding($text, $charcode, 'utf-8');
}
function toUtf8($ar){
foreach($ar as $val){
$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;
}
- 使用 PHP 解譯 javascript escape() 編碼過的字串
- 使用 PHP 解譯 javascript escape() 編碼過的字串
- 使用 PHP 解析 javascript escape() 编码过的字串
- 如何使用PHP实现javascript的escape和unescape函数
- PHP实现JavaScript的escape和unescape
- PHP javascript的escape和unescape函数
- PHP实现Javascript的escape(),unescape()的方法
- php 解码 javascript 的escape函数加密的字符串
- php实现Javascript的escape和unescape函数
- PHP实现javascript的escape和unescape函数
- javascript(c#) 使用escape、unescape
- javascript(c#) 使用escape、unescape .
- PHP解码JavaScript中的escape()方法
- C#实现javascript的escape
- C#实现javascript的escape
- php版的escape函数
- php版的escape函数
- php版的escape函数
- 网络(socket)编程指南
- IE无法打开新窗口之解决办法
- 给年轻工程师的十大忠告[zz]
- 昨天在LT上的战斗
- Linux下创建静态、动态库
- 使用 PHP 解譯 javascript escape() 編碼過的字串
- CSDN:管理之路VS技术之路
- 刚把过去一些vc共3G多参考的代码恢复到系统中,可惜自己写的有几个无法恢复了
- C++ 单元测试工具 CppUnitTest
- xmlhttp页面无刷新实现
- 外滩夜景
- IT女人,从二十五到三十五[转贴]
- 年轻没有失败,看驴生豪迈,不过重头再来
- 怎么看橱柜的好与坏