逃避与unescape功能代码共享在Javascript中的PHP实现

逃避与unescape功能代码共享在Javascript中的PHP实现
这种很好用。函数,PHP做JSON转换GBK字符,如中国、日本、韩国神马Unicode是最合适的。
< PHP
classcoding
{
Javascript的逃避和unescape / /复制功能
functionunescape($str)
{
文本= preg_replace_callback美元( / % { 0-9a-za-z } { 4 } /
美元,
toutf8
);
returnmb_convert_encoding(合文本,GB2312
}

functiontoutf8($ AR)
{
foreach(ARAS美元美元Val){
$值= intval(substr($ Val,2),16);
如果($ val < 0x7f){ / / 0000-007f
C.美元= CHR(美元值);
} elseif($ val < 0x800){ / / 0080-0800
$ C = CHR(0xC0 |($瓦尔 / 64));
$ C = CHR(0x80 |($瓦尔% 64));
}否则{ / / 0800-ffff
$ C = CHR(0xE0 |((($瓦尔 / 64)/ 64));
C.美元= CHR(0x80 |((($瓦尔 / 64)% 64));
$ C = CHR(0x80 |($瓦尔% 64));
}
}
返回$;
}

functionescape($字符串编码= 'gb2312美元)
{
$ =;
为($ x = 0;X元< mb_strlen($字符串编码美元);X元+ +){
$str = mb_substr($字符串,x美元,1美元,编码);
如果(strlen(str)> 1){ / /多字节字符
美元的回报。= '%u'。strtoupper(bin2hex(mb_convert_encoding($str,'ucs-2 ',为编码)));
其他{ }
美元的回报。=%。strtoupper(bin2hex($str));
}
}
返回美元;
}

functiongb2utf8(字符串编码= 'utf-8美元,美元,美元from_encode = 'gb2312)
{
returnmb_convert_encoding($字符串编码from_encode美元,美元);
}

}
>
另一个类似的脚本代码发现眉目传情
< PHP

functionphpescape($str)
{
sublen美元= strlen(str);
retrunstring美元= ;
为($我= 0;美元美元美元我<< sublen;i++)
{
如果(ORD($str {我})> = 127)
{
tmpstring美元= bin2hex(iconv(GBK
tmpstring美元= substr($ tmpstring,2,2)。Substr(tmpstring美元,0,2);
retrunstring美元。=%$ tmpstring;
美元+;
其他{ }
retrunstring美元。=%。Dechex(ORD($str {我}));
}
}
返回的retrunstring;
}
functionescape($str)
{
preg_match_all( / { X80 - xff }。| { X01 - x7f } + /
$ = $ $ { 0 };
foreach(ARAS美元$ K = > $ V)
{
如果(ORD($ V { 0 })<128)
{ } = K Ar美元美元rawurlencode($ V);
其他的
{ } = K Ar美元美元%。bin2hex(iconv(UTF-8
}
returnjoin(
}

functionphpunescape(合源)
{
decodedstr美元= ;
$ = 0;
$ len = strlen($源);

当($ $ $)
{
charAt = substr(美元美元美元来源,POS机,1);
如果($ charAt = =%)
{
美元+ +;
charAt = substr(美元美元美元来源,POS机,1);
如果($ charAt = = U)
{
t一个unicode字符
美元+ +;
unicodehexval美元= substr($源,美元的POS机,4);
美元($ unicodehexval)= hexdec Unicode;
$实体=# 。为Unicode。;;
decodedstr美元。= utf8_encode(美元单位);
$ = 4;
其他{ }
有转义ASCII字符
hexval美元= substr($源,美元的POS机,2);
decodedstr美元。= CHR(hexdec($ hexval));
$ = 2;
}
其他{ }
decodedstr美元。= $ charAt;
美元+ +;
}
}
返回的decodedstr;
}
functionunescape($str)
{
$str = rawurldecode($str);
preg_match_all( /(:(:(:% { 4 })| # X. { 4 };| # D +;| + / U。
$ = $ $ { 0 };
# print_r($ AR);
foreach(ARAS美元$ K = > $ V)
{
如果(substr($ V,0,2)= =%)
{ } = K Ar美元美元iconv(UCS-2
elseif(substr($ V,0,3)= =# X)
{ } = K Ar美元美元iconv(UCS-2
elseif(substr($ V,0,2)= =# )
{
/ /回声substr($ V,2,1)。;
{ } = K Ar美元美元iconv(UCS-2
}
}
returnjoin(
}

>

tag:代码功能电脑软件unescapephp

相关内容