js有esacpe和unescape通过两个函数来对汉字等进行加密解密,但是php中没有与js对应的加密解密,只能通过该函数进行编码的转换,下面将js加密后的加密解密php版本列出。

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;

}

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);

}

转载于:http://www.jb51.net/article/9723.htm

php进行 escape,php escape unescape相关推荐

  1. js几种escape()解码与unescape()编码

    js几种escape()解码与unescape()编码 www.111cn.net 编辑:kepeer 来源:转载 一篇js几种escape()解码与unescape()编码函数,同时我们也和它和服务 ...

  2. html escape函数,Javascript escape() 函数和unescape() 函数

    一.escape函数 escape()函数主要作用就是对字符串进行编码,以便它们能在所有计算机上可读. 语法: escape(charString) 说明: charString是必选参数,表示要进行 ...

  3. 前端中unescape是什么意思_js中escape()函数和unescape()函数的功能

    1.escape   方法 对   String   对象编码以便它们能在所有计算机上可读, escape(charString) 必选项   charstring   参数是要编码的任意   Str ...

  4. php 实现 js escape unescape

    在 ajax 异步处理数据的时候,中文很容易出来乱码,所以就要用到 php 实现的 javascript escape 和 unescape 来避免中文出现乱码. 在网上找了好多,关于 javascr ...

  5. JS escape()和unescape()函数的介绍

    escape()和unescape()是一对 编码解码 函数,一般用于URL中非ASCII字符的编码和解码! 如:escape("&")返回%26,unescape(&qu ...

  6. JS的编码:escape,encodeURI,encodeURIComponent,解码:unescape,decodeURI,decodeURIComp

    1:参数 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断. 例如:<script language="javascript" ...

  7. js escape 与php escape

    javascript有编码函数escape()和对应的解码函数unescape(),而php中只有个urlencode和urldecode,这个编码和解码函数对encodeURI和encodeURIC ...

  8. escape()、encodeURI()、encodeURIComponent()区别

    JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...

  9. underscore 系列之字符实体与 _.escape

    前言 underscore 提供了 _.escape 函数,用于转义 HTML 字符串,替换 &, <, >, ", ', 和 ` 字符为字符实体. _.escape(' ...

最新文章

  1. MFC控件的颜色设置
  2. 深入理解 C# 协变和逆变【转】
  3. 重磅 |《企业埋点体系搭建方法论及实践经验》白皮书上线
  4. 淘宝 oracle mysql_Oracle 与 MySQL 的区别-阿里云开发者社区
  5. ReflectionLabel(倒影控件)
  6. 创建 Spring容器的三种方式
  7. 树莓派编译mysql卡死_关于树莓派编译工作空间卡死情况的解决办法
  8. 变量在函数内外的作用域 3
  9. vue 中provide的用法_Vue多级组件provide/inject使用详解
  10. Linux下使用Nohup后台运行程序
  11. Java实现十字链表
  12. Android实战开发--制作圆形头像(简易篇)
  13. C++ QT 下载地址
  14. 学习Java第十九天(一):1、Java中的网络编程
  15. 观江怡之《分析哲学》
  16. k8s调度过程中的资源分配问题
  17. H5创建一个简单的自动幻灯片
  18. 网间互联-国家级互联网骨干直联点
  19. 补天SRC漏洞数排名
  20. Oracle 正则表达式以及常用正则函数

热门文章

  1. E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarly unavailable)
  2. Edge 705试用
  3. 杂谈SuperMap支持的三维数据
  4. 2018全球互联网经济大会,春季峰会在南京开幕
  5. 【人工智能】人工智能是中国2025的歧路;人工智能只是智能制造舞台上的“小配角”
  6. 云原生时代,paas,apaas,ipaas,bpaas,baas,daas是什么
  7. python解析xml存入字典_Python将XML同级放入字典
  8. 基于STM32的虚拟示波器
  9. 无人机集群飞行控制思考
  10. vim中 E212:无法打开并写入文件