2016-10-13 00:16:48 点击量:10 标签: 收藏本文
[php]php编码解码技术
- <?php
- /*
- *使用 PHP 解码 javascript escape() 编码过的字串为UTF-8
- *例:1
- *
- *$tem=new UnEscape();
- *echo $tem->getUtf8("%u624B%u673A%u95E8%u6237");
- *echo $tem->getGb2312("%u624B%u673A%u95E8%u6237");
- */
- function UnEscapeToUtf8($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;
- }
- class UnEscape{
- function getUtf8($value=""){
- $text = preg_replace_callback("/%u[0-9A-Za-z]{4}/",UnEscapeToUtf8,$value);
- return urldecode($text);
- }
- function getGb2312($value=""){
- $text = preg_replace_callback("/%u[0-9A-Za-z]{4}/",UnEscapeToUtf8,$value);
- $obj=new Gb2312Utf8();
- return $obj->utf8ToGb2312(urldecode($text));
- }
- }
- ?>