javascript用escape编码后如何用php进行解码?
来源:互联网 发布:知理的议论文 编辑:程序博客网 时间:2024/04/30 17:50
<?php
function escape($str){
$res = @unpack("H*",iconv("utf-8","UCS-2",$str));
$res = preg_replace("/(.{4})/is","%u//1",$res[1]);
return $res;
}
function unescape($str) {
$str = rawurldecode($str);
preg_match_all("/%u.{4}|&#x.{4};|&#/d+;|.+/U",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(substr($v,0,2) == "%u")
$ar[$k] = iconv("UCS-2","utf-8",pack("H4",substr($v,-4)));
elseif(substr($v,0,3) == "&#x")
$ar[$k] = iconv("UCS-2","utf-8",pack("H4",substr($v,3,-1)));
elseif(substr($v,0,2) == "&#") {
$ar[$k] = iconv("UCS-2","utf-8",pack("n",substr($v,2,-1)));
}
}
return join("",$ar);
}
function escape1($str){
$sublen=strlen($str);
$reString="";
for ($i=0;$i<$sublen;$i++){
if(ord($str[$i])>=127){
$tmpString=bin2hex(iconv("GBK","ucs-2",substr($str,$i,2))); //此处GBK为目标代码的编码格式,请实际情况修改
if (!eregi("WIN",PHP_OS)){
$tmpString=substr($tmpString,2,2).substr($tmpString,0,2);
}
$reString.="%u".$tmpString;
$i++;
} else {
$reString.="%".dechex(ord($str[$i]));
}
}
return $reString;
}
function unescape1($str) {
$str = rawurldecode($str);
preg_match_all("/%u.{4}|&#x.{4};|&#/d+;|.+/U",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(substr($v,0,2) == "%u")
$ar[$k] =!eregi("WIN",PHP_OS)?iconv("UCS-2","GBK",strrev(pack("H4",substr($v,-4)))):iconv("UCS-2","gb2312",pack("H4",substr($v,-4)));
elseif(substr($v,0,3) == "&#x")
$ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,3,-1)));
elseif(substr($v,0,2) == "&#") {
$ar[$k] = iconv("UCS-2","GBK",pack("n",substr($v,2,-1)));
}
}
return join("",$ar);
}
?>
function escape($str){
$res = @unpack("H*",iconv("utf-8","UCS-2",$str));
$res = preg_replace("/(.{4})/is","%u//1",$res[1]);
return $res;
}
function unescape($str) {
$str = rawurldecode($str);
preg_match_all("/%u.{4}|&#x.{4};|&#/d+;|.+/U",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(substr($v,0,2) == "%u")
$ar[$k] = iconv("UCS-2","utf-8",pack("H4",substr($v,-4)));
elseif(substr($v,0,3) == "&#x")
$ar[$k] = iconv("UCS-2","utf-8",pack("H4",substr($v,3,-1)));
elseif(substr($v,0,2) == "&#") {
$ar[$k] = iconv("UCS-2","utf-8",pack("n",substr($v,2,-1)));
}
}
return join("",$ar);
}
function escape1($str){
$sublen=strlen($str);
$reString="";
for ($i=0;$i<$sublen;$i++){
if(ord($str[$i])>=127){
$tmpString=bin2hex(iconv("GBK","ucs-2",substr($str,$i,2))); //此处GBK为目标代码的编码格式,请实际情况修改
if (!eregi("WIN",PHP_OS)){
$tmpString=substr($tmpString,2,2).substr($tmpString,0,2);
}
$reString.="%u".$tmpString;
$i++;
} else {
$reString.="%".dechex(ord($str[$i]));
}
}
return $reString;
}
function unescape1($str) {
$str = rawurldecode($str);
preg_match_all("/%u.{4}|&#x.{4};|&#/d+;|.+/U",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(substr($v,0,2) == "%u")
$ar[$k] =!eregi("WIN",PHP_OS)?iconv("UCS-2","GBK",strrev(pack("H4",substr($v,-4)))):iconv("UCS-2","gb2312",pack("H4",substr($v,-4)));
elseif(substr($v,0,3) == "&#x")
$ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,3,-1)));
elseif(substr($v,0,2) == "&#") {
$ar[$k] = iconv("UCS-2","GBK",pack("n",substr($v,2,-1)));
}
}
return join("",$ar);
}
?>
注意escape1和unescape1中对windows和unix的区分!
- javascript用escape编码后如何用php进行解码?
- JS端 escape编码后 PHP端解码函数
- 用js进行url编码后用php反解以及用php实现js的escape功能函数
- PHP解码JavaScript中的escape()方法
- 在Java中正确解码用Javascript:escape()编码的中文字符
- 在Java中正确解码用Javascript:escape()编码的中文字符
- 在Java中正确解码用Javascript:escape()编码的中文字符
- 在Java中正确解码用Javascript:escape()编码的中文字符
- 在Java中正确解码用Javascript:escape()编码的中文字符
- Java中正确解码用Javascript:escape()编码的中文字符
- 在Java中正确解码用Javascript:escape()编码的中文字符
- 在Android中正确解码用Javascript:escape()编码的中文字符
- 在Java中正确解码用Javascript:escape()编码的中文字符
- javascript中escape编码,后台解码出错的解决办法。
- PHP解码js的escape编码的字符
- PHP解码js的escape编码的字符
- 如何用php进行数据备份
- java对应javascript的escape,unescape进行解码
- Sql server 2005远程连接的配置
- typedef深入
- HP-UX 11.0内核参数篇
- 一个软件公司正在招聘
- CURSOR 的用法
- javascript用escape编码后如何用php进行解码?
- SVG DOM主要事件列表
- 服务器托管必备的十大工具
- 中国IDC机房评测分级的标准
- 雷曼兄弟破产,催生互联网的下一阶段的主题将是“真正的生产力”
- 一个初中生到程序员的辛酸经历(转载)
- 求怎样存钱利息最大——答案
- 一个比较好用的SQL分页查询
- Eclipse学习摘要-1