php版的escape函数
2004-11-17 08:27
381 查看
php提供的URL编码函数是基于字节的,对由ie的javascript函数escape编码的数据就无能为力了。
因此在此共享本人的php版的escape/unescape函数
function escape($str) {
preg_match_all("/[/x80-/xff].|[/x01-/x7f]+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(ord($v[0]) < 128)
$ar[$k] = rawurlencode($v);
else
$ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v));
}
return join("",$ar);
}
function unescape($str) {
$str = rawurldecode($str);
preg_match_all("/(?:%u.{4})|.+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(substr($v,0,2) == "%u" && strlen($v) == 6)
$ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4)));
}
return join("",$ar);
}
因此在此共享本人的php版的escape/unescape函数
function escape($str) {
preg_match_all("/[/x80-/xff].|[/x01-/x7f]+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(ord($v[0]) < 128)
$ar[$k] = rawurlencode($v);
else
$ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v));
}
return join("",$ar);
}
function unescape($str) {
$str = rawurldecode($str);
preg_match_all("/(?:%u.{4})|.+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(substr($v,0,2) == "%u" && strlen($v) == 6)
$ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4)));
}
return join("",$ar);
}
相关文章推荐
- php学习 面向对象 课件第1/2页
- 基于php的CMS中展示文章类实例分析
- php中计算时间差的几种方法
- PHP时间和日期函数详解
- PHP版本如何选择?应该使用哪个版本?
- PHP 线程安全与非线程安全版本的区别深入解析
- php gzip压缩输出的实现方法
- PHP扩展模块Pecl、Pear以及Perl的区别
- 在php和MySql中计算时间差的方法详解
- JavaScript封装的常用工具类库bee.js用法详解【经典类库】
- VC与Delphi之间动态链接库互相调用
- javascript表单之间的数据传递!
- PHP 的 MySQL 操作类,跟手册上的函数一样用,但是更方便了。多说无益,看了就知道了。
- delphi中的时间操作技术(1)
- delphi中的时间操作技术(2)