如何使用PHP实现javascript的escape和unescape函数
2013-06-29 00:00
866 查看
前端开发工程师都知道javascript有编码函数escape()和对应的解码函数unescape(),而php中只有个urlencode和urldecode,这个编码和解码函数对encodeURI和encodeURIComponent有效,但是对escape的是无效的。
javascript中的escape()函数和unescape()函数用户字符串编码,类似于PHP中的urlencode()函数,下面是php实现的escape函数代码:
对应的解码php unescape代码是:
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-8',$out_encoding = 'UCS-2') { $return = ''; if (function_exists('mb_get_info')) { for($x = 0; $x < mb_strlen ( $string, $in_encoding ); $x ++) { $str = mb_substr ( $string, $x, 1, $in_encoding ); if (strlen ( $str ) > 1) { // 多字节字符 $return .= '%u' . strtoupper ( bin2hex ( mb_convert_encoding ( $str, $out_encoding, $in_encoding ) ) ); } else { $return .= '%' . strtoupper ( bin2hex ( $str ) ); } } } return $return; }
对应的解码php unescape代码是:
function unescape($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); else if ($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; } else if ($str[$i] == '%') { $ret .= urldecode(substr($str, $i, 3)); $i += 2; } else $ret .= $str[$i]; } return $ret; }
相关文章推荐
- 如何使用PHP实现javascript的escape和unescape函数
- 如何使用PHP实现javascript的escape和unescape函数
- [转]如何使用PHP实现javascript的escape和unescape函数
- 使用php实现javascript的escape和unescape函数
- PHP实现javascript的escape和unescape函数
- PHP实现Javascript中的escape及unescape函数代码分享
- PHP实现javascript的escape和unescape函数
- php实现Javascript的escape和unescape函数
- PHP实现Javascript中的escape及unescape函数代码分享
- JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
- 探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
- PHP使用数组实现队列(实际就是先进先出如何实现)
- 在php中如何实现cookie即时生效,不用刷新就可以使用
- 使用 PHP 解析 javascript escape() 编码过的字串
- 如何使用cgi-fcgi命令访问php-fpm实现HTTP请求
- 如何使用PHP中ci框架实现验证码?
- 在PHP中实现Javascript的escape()函数代码
- 如何使用JavaScript实现纯前端读取和导出excel文件
- PHP中如何使用session实现保存用户登录信息
- 使用PHP如何实现高效安全的ftp服务器(一)