PHP下escape解码函数的实现方法
2023-06-13 09:14:24 时间
GB2312编码:
复制代码代码如下:
functionunescape($str){
$str=rawurldecode($str);
preg_match_all("/%u.{4}|.{4};|d+;|.+/U",$str,$r);
$ar=$r[0];
foreach($aras$k=>$v){
if(substr($v,0,2)=="%u")
$ar[$k]=iconv("UCS-2","GBK",pack("H4",substr($v,-4)));
elseif(substr($v,0,3)=="")
$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)));
}
}
returnjoin("",$ar);
}
UTF8编码:
functionunescape($str){
$ret="";
$len=strlen($str);
for($i=0;$i<$len;$i++){
if($str[$i]=="%"&&$str[$i+1]=="u"){
$val=hexdec(substr($str,$i+2,4));
if($val<0x7f)$ret.=chr($val);
elseif($val<0x800)$ret.=chr(0xc0|($val>>6)).chr(0x80|($val&0x3f));
else$ret.=chr(0xe0|($val>>12)).chr(0x80|(($val>>6)&0x3f)).chr(0x80|($val&0x3f));
$i+=5;
}
elseif($str[$i]=="%"){
$ret.=urldecode(substr($str,$i,3));
$i+=2;
}
else$ret.=$str[$i];
}
return$ret;
}
相关文章
- 【说站】php中__call方法怎么用
- php实现图片添加描边字和马赛克的方法
- 600+服务模块,1万+POD数量,作业帮从PHP迁移至Go实战总结
- PHP实现将数组插入MySQL数据库(php数组插入mysql)
- 脚本Linux实现自动化执行PHP脚本(linux自动执行php)
- Linux搭建PHP网站实现快速上线(linux架设php网站)
- PHP开启Redis:实现快速访问(php开启redis)
- PHP轻松访问MySQL数据:使用简明易懂的方法获取数据(php获取mysql数据)
- PHP和MSSQL实现完美兼容:简单实用又稳定(php mssql兼容性)
- PHP中常用数组处理方法实例分析
- php中使用explode查找某个字符是否存在的方法
- php中经典方法实现判断多维数组是否为空
- smarty实现PHP静态化的两种方法分享
- PHP常用特殊运算符号和函数总结(php新手入门必看)
- 在smarty中调用php内置函数的方法
- 通过table标签,PHP输出EXCEL的实现方法
- php使用ZipArchive提示Fatalerror:ClassZipArchivenotfoundin的解决方法
- PHP获取数组中重复最多的元素的实现方法
- php遍历数组的4种方法总结
- php获取数组元素中头一个数组元素值的实现方法
- PHP实现显示照片exif信息的方法
- PHP扩展模块memcached长连接使用方法分析
- php实现根据字符串生成对应数组的方法