escape unescape的php下的实现方法

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

(0)

相关推荐

  • php模拟js函数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 < 0x80

  • js中的escape及unescape函数的php实现代码

    <?     function phpescape($str)  {           $sublen=strlen($str);           $retrunString="";           for ($i=0;$i<$sublen;$i++)           {                    if(ord($str[$i])>=127)                    {                             $

  • PHP实现Javascript中的escape及unescape函数代码分享

    这个类相当好用.作用么,PHP做JSON传递GBK字符,比如中文,日文,韩文神马的Unicode最合适不过了.. <?php classcoding { //模仿JAVASCRIPT的ESCAPE和UNESCAPE函数的功能 functionunescape($str) { $text=preg_replace_callback("/%u[0-9A-Za-z]{4}/",array( &$this, 'toUtf8' ),$str); returnmb_convert_e

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

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

  • PHP实现JS中escape与unescape的方法

    本文实例讲述了PHP实现JS中escape与unescape的方法.分享给大家供大家参考,具体如下: JavaScript中的escape和unescape是吧字符串转换为unicode十六进制编码,跟JSON的编码格式是一样的,所以可以通过PHP中的json_encode和json_decode实现PHP版本的escape和unescape. 代码如下: <?php function escape($str) { return str_replace('\\', '%', substr(jso

  • php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案

    PHP5.4才支持JSON_UNESCAPED_UNICODE这个参数,此参数是让中文字符在json_encode的时候不用转义,减少数据传输量.但在PHP5.3中,就得自己写个函数来实现,以下就是解决方法: /** * 对变量进行 JSON 编码 * @param mixed value 待编码的 value ,除了resource 类型之外,可以为任何数据类型,该函数只能接受 UTF-8 编码的数据 * @return string 返回 value 值的 JSON 形式 */ functi

  • escape unescape的php下的实现方法

    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(&qu

  • js escape,unescape解决中文乱码问题的方法

    1.escape 方法 对 String 对象编码以便它们能在所有计算机上可读, escape(charString) 必选项 charstring 参数是要编码的任意 String 对象或文字. 说明 : escape 方法返回一个包含了 charstring 内容的字符串值( Unicode 格式).所有空格.标点.重音符号以 及 其他非 ASCII字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数.例如,空格返回的是"%20 " . 字符值大于 255 的以 %u

  • JBoss5.x下配置Log4j方法介绍

    最近在学习JBoss下配置Log4j,JBoss的各个版本的目录.JBoss和Log4j集成的文件名每次都有变化,在JBoss5.x下配置了log4j.xml文件,但是配置没有生效.如果你在项目中没有指定使用的log4j的配置文件,最好使用JBoss自带的配置文件,文件名为jboss-log4j.xml.该文件在Jboss容器的目录为:${JBOSS_HOME}\server\default\conf下.下面就是基于log4j默认配置的一些基本修改和注释: <span style="fon

  • Unity编辑器下重启的方法

    Unity编辑器下重启的方法 我们项目AssetBundle打包走的是全自动化流程,打包之前要进行各种资源检测,如果检测顺利通过,则进入打包,否则提示错误资源名称及路径,打包中断!有时候即使资源检测通过也会打包崩溃,初步断定是Unity的内存爆了,因为Unity在编辑器下打开工程中的资源不会释放掉,所以内存一直在占用,打包时要进行一系列资源依赖分析,我们也知道,如果资源量非常大时候,Unity要保存资源依赖的堆栈,所以会有内存崩掉的风险,所以我就想着,打包之前重启下Unity,让Unity释放掉

  • 用批处理上传文件到ftp目录下的实现方法

    为了快速将项目中开发的补丁程序通过ftp快速上传到linux下,感觉每次用flashFxp等工具麻烦),写了个简单的批处理,与大家分享一下. 将以下代码保存为.bat格式的文件,每次将要上传的补丁保存在规定的本地目录中,只要双击执行此文件就能上传到你的指定目录上. 说明: 192.168.1.1 ftp ip 地址 21 端口 username 用户名 password 密码 temp.txt 保存ftp信息的临时文件,上传后删除 C:\Documents and Settings\user\桌

  • MongoDB快速入门笔记(一)之windows下安装MongoDB方法

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. MongoDB下载地址:http://www.mongodb.org/downloads 1.安装MongoDB 从MongoDB官网上下载MongoDB,我下载的版本是64位的3.2.6.下载完以后直接安装,我的安装目录是D:\work\MongoDB.

  • java读取resource目录下文件的方法示例

    本文主要介绍的是java读取resource目录下文件的方法,比如这是你的src目录的结构 ├── main │ ├── java │ │ └── com │ │ └── test │ │ └── core │ │ ├── bean │ │ ├── Test.java │ └── resources │ └── test │ ├── test.txt └── test └── java 我们希望在Test.java中读取test.txt文件中的内容,那么我们可以借助Guava库的Resource

  • linux下用renameTo方法修改java web项目中文件夹名称的实例

    经测试,在Linux环境中安装tomcat,然后启动其中的项目,在项目中使用java.io.File.renameTo(File dest)方法可行. 之前在本地运行代码可以修改,然后传到Linux服务器上一直无法实现功能,自己一直在捣鼓,以为是window环境和Linux环境不同的原因导致,后面发现在项目中使用renameTo方法修改文件夹名称不行是因为之前改了java web项目中的js,在js中传入值到后台,后台根据值来修改文件夹名称.由于没清除缓存导致js中的代码没有刷新,所以一直出现错

  • python连接远程ftp服务器并列出目录下文件的方法

    本文实例讲述了python连接远程ftp服务器并列出目录下文件的方法.分享给大家供大家参考.具体如下: 这段python代码用到了pysftp模块,使用sftp协议,对数据进行加密传输 import pysftp srv = pysftp.Connection(host="your_FTP_server", username="your_username",password="your_password") # Get the directory

  • asp.net编程实现删除文件夹及文件夹下文件的方法

    本文实例讲述了asp.net编程实现删除文件夹及文件夹下文件的方法.分享给大家供大家参考,具体如下: //获取文件夹 string path = Server.MapPath("Image"); //获取文件夹中所有图片 if (Directory.GetFileSystemEntries(path).Length > 0) { //遍历文件夹中所有文件 foreach (string file in Directory.GetFiles(path)) { //文件己存在 if

随机推荐