PHP解密Unicode及Escape加密字符串
本文给大家分享一个PHP解密Unicode及Escape加密字符串函数
<?php
functionuni_decode($s){
preg_match_all('/\&\#([0-9]{2,5})\;/',$s,$html_uni);
preg_match_all('/[\\\%]u([0-9a-f]{4})/ie',$s,$js_uni);
$source=array_merge($html_uni[0],$js_uni[0]);
$js=array();
for($i=0;$i<count($js_uni[1]);$i++){
$js[]=hexdec($js_uni[1][$i]);
}
$utf8=array_merge($html_uni[1],$js);
$code=$s;
for($j=0;$j<count($utf8);$j++){
$code=str_replace($source[$j],unicode2utf8($utf8[$j]),$code);
}
return$code;//$s;//preg_replace('/\\\u([0-9a-f]{4})/ie',"chr(hexdec('\\1'))",$s);
}
functionunicode2utf8($c){
$str="";
if($c<0x80){
$str.=chr($c);
}elseif($c<0x800){
$str.=chr(0xc0|$c>>6);
$str.=chr(0x80|$c&0x3f);
}elseif($c<0x10000){
$str.=chr(0xe0|$c>>12);
$str.=chr(0x80|$c>>6&0x3f);
$str.=chr(0x80|$c&0x3f);
}elseif($c<0x200000){
$str.=chr(0xf0|$c>>18);
$str.=chr(0x80|$c>>12&0x3f);
$str.=chr(0x80|$c>>6&0x3f);
$str.=chr(0x80|$c&0x3f);
}
return$str;
}
$str='%u5927%u5BB6%u597D%uFF0C我是孤魂!<br/>\u8FD9\u662F\u6D4B\u8BD5\u6587\u672C\uFF01';
echouni_decode($str);//大家好,我是孤魂!这是测试文本!
在网上搜索一把,很多用php实现的escape函数,大同小异
functionphpescape($str){
preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$newstr);
$ar=$newstr[0];
foreach($aras$k=>$v){
if(ord($ar[$k])>=127){
$tmpString=bin2hex(iconv("GBK","ucs-2",$v));
if(!eregi("WIN",PHP_OS)){
$tmpString=substr($tmpString,2,2).substr($tmpString,0,2);
}
$reString.="%u".$tmpString;
}else{
$reString.=rawurlencode($v);
}
}
return$reString;
}
以上所述就是本文的全部内容了,希望大家能够喜欢。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下