php

位置:IT落伍者 >> php >> 浏览文章

如何使用PHP实现javascript的escape和unescape函数


发布日期:2023年07月13日
 
如何使用PHP实现javascript的escape和unescape函数

前端开发工程师都知道javascript有编码函数escape()和对应的解码函数unescape()而php中只有个urlencode和 urldecode这个编码和解码函数对encodeURI和encodeURIComponent有效但是对escape的是无效的
javascript中的escape()函数和unescape()函数用户字符串编码类似于PHP中的urlencode()函数下面是php实现的escape函数代码

复制代码 代码如下:
/**
* js escape php 实现
* @param $string           the sting want to be escaped
* @param $in_encoding      
* @param $out_encoding      
*/
function escape($string $in_encoding = UTF$out_encoding = UCS) {
$return = ;
if (function_exists(mb_get_info)) {
for($x = ; $x < mb_strlen ( $string $in_encoding ); $x ++) {
$str = mb_substr ( $string $x $in_encoding );
if (strlen ( $str ) > ) { // 多字节字符
$return = %u strtoupper ( binhex ( mb_convert_encoding ( $str $out_encoding $in_encoding ) ) );
} else {
$return = % strtoupper ( binhex ( $str ) );
}
}
}
return $return;
}


对应的解码php unescape代码是

复制代码 代码如下:
function unescape($str)
{
$ret = ;
$len = strlen($str);
for ($i = ; $i < $len; $i ++)
{
if ($str[$i] == % && $str[$i + ] == u)
{
$val = hexdec(substr($str $i + ));
if ($val < xf)
$ret = chr($val);
else  
if ($val < x)
$ret = chr(xc | ($val >> ))
chr(x | ($val & xf));
else
$ret = chr(xe | ($val >> ))
chr(x | (($val >> ) & xf))
chr(x | ($val & xf));
$i += ;
} else  
if ($str[$i] == %)
{
$ret = urldecode(substr($str $i ));
$i += ;
} else
$ret = $str[$i];
}
return $ret;
}               

上一篇:php技巧:几个比较实用的PHP函数

下一篇:解析php防止form重复提交的方法