- 浏览: 2329550 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (559)
- JavaScript (55)
- windows (21)
- mysql (7)
- php (199)
- thinkphp (2)
- 互联网 (42)
- flash (3)
- html (9)
- phpcms (11)
- ffmpeg (6)
- 生活 (108)
- flash小游戏 (11)
- 软件 (35)
- css (1)
- JavaScript 二维码 (0)
- 二维码 (1)
- 桌面图标 (1)
- ping服务 (1)
- 百度 (2)
- 搜索引擎 (1)
- seo (1)
- 整形美容 (1)
- 深圳婚纱摄影 (1)
- 武汉婚纱摄影 (2)
- 淘宝 (0)
- 冬装 (0)
- 女装 (0)
- 新款冬装女装 (0)
- freebsd 操作系统 (1)
- editplus (1)
- svn (1)
- 微信 (1)
- 微商 (1)
- curl (1)
- 远程 (1)
- 防盗链 (1)
- vc2012 (1)
- Alexa (1)
- bootstrap (1)
- fileinput (1)
- webuploader (1)
- mip (1)
- 正则 (1)
最新评论
-
hexawing:
啥原理……貌似很神奇啊
excel写保护(非打开保护)的破解方法 -
化蝶自在飞:
注意upload.js的配置参数 sendAsBinary
webuploader实例php 配合fastDFS远程跨域上传回调的注意点 -
化蝶自在飞:
增加一个微信内置浏览器的useragent:
Mozilla/ ...
浏览器useragent大全 -
化蝶自在飞:
leiliang10 写道你揍是个骗纸此话怎讲?这个工具是我自 ...
mp4、mov视频元数据头信息修复工具 支持h.264编码边下边播 -
leiliang10:
你揍是个骗纸
mp4、mov视频元数据头信息修复工具 支持h.264编码边下边播
在json中不支持中文,用它传送中文数据就会出现数据丢失或者乱码,必须在传送前对要发送的字符串进行编码,由于传送过去需要用js进行数据解析,考虑到js中有unescape函数,故若在php中有个escape函数,对数据进行编码,在客户端用unescape进行 解码,这样就会方便很多。
先在网上搜索一把,很多用php实现的escape函数,大同小异
function phpescape($str){
preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$newstr);
$ar = $newstr[0];
foreach($ar as $k=>$v){
if(ord($ar[$k])>=127){
$tmpString=bin2hex(iconv("GBK","ucs-2",$v));
if (!eregi("WIN",PHP_OS)){
$tmpString = substr($tmpString,2,2).substr($tmpString,0,2);
}
$reString.="%u".$tmpString;
} else {
$reString.= rawurlencode($v);
}
}
return $reString;
}
这个函数可以很好的工作,但是,也许有新手不理解这个函数的原理(比如我),用起来总是不放心,现在我就来解释一下这个函数的原理。而且我认为,拿别人的代码来复用,好比站在了巨人的肩膀上,但是若不理解别人的代码,迟早要掉到地面上。
第一句:preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);这个是用正则表达式匹配字符串中所有的字符,[\x80-\xff]. 匹配的是汉字,\x表示匹配字符的16进制编码,[ ] 是类选择符,“.” 表示任意一个字符,这样[\x80-\xff].匹配的是两个字符,其中第一个就是16进制从80到ff的字符,而这恰好就是汉字编码的第一个字符。这样就能完整的匹配一个汉字。关于unicode中汉字的编码,大家可以到网上搜索一下。同理,[\x01-\x7f]+英文字符串,因为最早的英文是ASCII编码,编码值小于128,也就是16进制的从01到7f,"+"表示一个或者多个字符,这样[\x01-\x7f]+就能匹配连续多个英文字符串。
$ar = $r[0]; //$r[0]里存放是匹配到的数组
foreach($ar as $k=>$v) {
if(ord($v[0]) < 128) //假如字符编码值小于128,说明是个英文字符
$ar[$k] = rawurlencode($v); //直接用rawurlencode编码
else
$ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v)); //否则的话用iconv函数把汉字转变成ucs-2编码,也就是unicode编码
}
这个就是关于php中escape函数的一个实现,欢迎大家补充
有时候可能会遇到PHP版本不同,导致出来结果不同,以致于乱码
下面这个备用
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函数,大同小异
function phpescape($str){
preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$newstr);
$ar = $newstr[0];
foreach($ar as $k=>$v){
if(ord($ar[$k])>=127){
$tmpString=bin2hex(iconv("GBK","ucs-2",$v));
if (!eregi("WIN",PHP_OS)){
$tmpString = substr($tmpString,2,2).substr($tmpString,0,2);
}
$reString.="%u".$tmpString;
} else {
$reString.= rawurlencode($v);
}
}
return $reString;
}
这个函数可以很好的工作,但是,也许有新手不理解这个函数的原理(比如我),用起来总是不放心,现在我就来解释一下这个函数的原理。而且我认为,拿别人的代码来复用,好比站在了巨人的肩膀上,但是若不理解别人的代码,迟早要掉到地面上。
第一句:preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);这个是用正则表达式匹配字符串中所有的字符,[\x80-\xff]. 匹配的是汉字,\x表示匹配字符的16进制编码,[ ] 是类选择符,“.” 表示任意一个字符,这样[\x80-\xff].匹配的是两个字符,其中第一个就是16进制从80到ff的字符,而这恰好就是汉字编码的第一个字符。这样就能完整的匹配一个汉字。关于unicode中汉字的编码,大家可以到网上搜索一下。同理,[\x01-\x7f]+英文字符串,因为最早的英文是ASCII编码,编码值小于128,也就是16进制的从01到7f,"+"表示一个或者多个字符,这样[\x01-\x7f]+就能匹配连续多个英文字符串。
$ar = $r[0]; //$r[0]里存放是匹配到的数组
foreach($ar as $k=>$v) {
if(ord($v[0]) < 128) //假如字符编码值小于128,说明是个英文字符
$ar[$k] = rawurlencode($v); //直接用rawurlencode编码
else
$ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v)); //否则的话用iconv函数把汉字转变成ucs-2编码,也就是unicode编码
}
这个就是关于php中escape函数的一个实现,欢迎大家补充
有时候可能会遇到PHP版本不同,导致出来结果不同,以致于乱码
下面这个备用
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正则表达式匹配获取字符串中的时间格式 年月日时分秒
2022-05-27 00:07 2392有这样一个需求,要 ... -
基于phpcms的百度mip内容转换方法(适用任何cms)
2017-01-11 14:06 1997百度在2016年底推出了mip,具体可以百度搜索下是个什么 ... -
webuploader实例php 配合fastDFS远程跨域上传回调的注意点
2016-08-02 19:31 3266webuploader上传控件是百度官方提供的一套基于ht ... -
bootstrap上传插件fileinput自动上传&上传成功回调的方法
2016-05-03 20:16 21bootstrap上传插件fileinput功能非常强大,本 ... -
php利于curl抓取远程网址图片示例(解决防盗链问题)
2016-04-12 00:39 4277php利用curl抓取远程图片,可以解决防盗链问题哦. ... -
editplus集成配置svn,小乌龟svn中文语言包下载for windows
2013-05-01 14:32 3151editplus配置集成svn的方 ... -
php发送503状态码
2013-01-16 19:56 1929header('HTTP/1.1 503 Service ... -
php过滤超链接并判断链接中文字是否为网址preg_replace_callback函数用法
2012-11-18 15:28 3133示例代码如下: $str = '<a class=& ... -
伪静态后获取当前地址栏的完整url地址
2012-06-27 16:22 1598$cururl = 'http://'.$_SERVER[&q ... -
php正则匹配指定开始结束部分内容&非贪婪模式
2012-04-05 19:05 6991php正则匹配指定开始结束部分内容,指定开始结束位置,提取/匹 ... -
php正则实现ip段判断
2012-04-02 19:24 5916$ip = '22.18.10.2'; $arrayip = ... -
php判断远程文件是否存在
2012-02-16 18:36 1975//判断远程文件是否存在 function remote_f ... -
ajax提交表单的一些注意事项:解释为什么return false却依然提交
2012-02-02 19:10 2101ajax提交表单的一些注意事项.ajax提交表单是经常用到的. ... -
php xdebug的配置问题
2012-01-12 19:46 1648[Xdebug] zend_extension_ ... -
phpcms v9编辑器ckeditor数据恢复功能
2011-11-12 21:57 2801为phpcms v9的ckeditor编辑器开发的数据恢复功能 ... -
php+js抓取太平洋汽车网数据自动填表的一个实现
2011-11-11 22:34 2887主要是php输出json,js解析的模式 function ... -
php正则提取img标签各属性值
2011-09-26 22:35 6910<?php /* create by tuzwu ... -
百度ping服务的php实现以及google ping服务
2011-09-16 16:47 2566百度ping服务的php实现: $baiduXML = & ... -
php输出下载到桌面的桌面图标
2011-09-11 14:23 2951<?php //tuzwu@qq.com for ... -
分析下迅雷旗下游戏网站31345保存到桌面功能的实现
2011-05-03 11:25 2633网站地址是31345.com,可以看出是迅雷其他的,其 保存到 ...
相关推荐
Escape加密-UnEscape解密 每一位站长必备的好工具,精而巧!
JavaScript 中提供了 `escape` 和 `unescape` 函数来实现这一目标。然而,在ASP(Active Server Pages)环境中,这些函数并不可用。因此,为了兼容性和跨平台需求,有时我们需要在ASP中手动实现这些功能。 #### ...
在Java编程语言中,`escape`和`unescape`函数是处理字符串时常见的工具,尤其在处理HTML、JavaScript或URL编码时。这两个函数主要用于在字符串中转换特殊字符,确保数据在网络传输或存储时的正确性和安全性。下面...
使用 unescape() 函数可以对加密后的 JavaScript 代码进行解密。例如: var decryptedCode = unescape(encryptedCode); (2)使用 Base64 解码 使用 Base64 解码可以对加密后的 JavaScript 代码进行解密。例如: ...
在JavaScript中,`escape`和`unescape`是两个用于编码和解码字符串的函数。它们主要用于处理非ASCII字符,特别是在网络传输时确保数据的正确性。然而,PHP并没有直接对应的内置函数,但可以通过自定义函数来实现类似...
在JavaScript中,`escape()`和`unescape()`函数是用来处理字符串的编码和解码的。它们在处理URL编码和特定字符编码时非常有用。然而,PHP并没有直接等效的内置函数,但我们可以根据其功能编写相应的PHP实现。下面将...
在JavaScript或者其他编程语言中,Escape函数用于将特定的字符转换为它们的Unicode转义序列,这样可以确保字符串在网络传输或存储时不会因为特殊字符导致问题。例如,空格会转换为"%20","&"会转换为"%26"等。这个...
这是一个网页文件,运行后把escape加密的部分粘贴进去后点解密就可以还原成html源代码,也可以对html代码加密,集加密解密于一身
在这个场景中,我们将讨论如何在JavaScript中实现DES加密和解密,并且确保其能正确处理中文字符。 DES加密算法是一种块加密算法,它使用64位的密钥对64位的数据块进行操作。虽然原始的DES已经有些过时,因为它只有...
模仿JAVASCRIPT的ESCAPE和UNESCAPE函数的功能 用curl函数读取远程文件 用file_getcontents提交数据 用php生成扭曲,有角度的验证图片(支持中文) 用正则加亮关键字 程序运行过程中直接输出 缩略图带版权信息...
JavaScript是一种广泛应用于网页和网络应用的脚本语言,它的强大之处在于可以处理用户交互、操作DOM、进行数据交换以及执行各种安全操作,如加密、解密和编码。在这个"js加密、解密、编码等工具合集"中,包含三个...
在JavaScript中,`escape`和`unescape`函数是用来对字符串进行编码和解码的,主要是为了处理非ASCII字符。然而,在PHP中,没有直接对应的内置函数。但是,通过自定义函数,我们可以模拟这些功能。这里我们将深入探讨...
下面,我们将深入探讨如何在Java中实现JavaScript的`escape()`和`unescape()`方法,以及它们的具体工作原理和应用。 ### Java实现JS的`escape`和`unescape`方法 #### `escape`方法:URL编码 在JavaScript中,`...
本工具类用java实现了JavaScript escape/unescape 编码。对接建行支付以及需要向后端传输中文数据时可以使用得到
输入样例: String stest = "中文1234 abcd[](),.~\\";...System.out.println(unescape(escape(stest))); 输出结果: 中文1234 abcd[](),.~\ %u4E2D%u65871234+abcd%5B%5D()%3C%2B%3E%2C.~%5C 中文1234 abcd[](),.~\
JavaScript中的`escape`和`unescape`函数是处理字符串编码和解码的两个关键方法,尤其是在处理包含非ASCII字符(如中文字符)的字符串时。这两个函数在处理字符串时遵循特定的规则,对于理解JavaScript字符串编码...
本文将详细介绍ASP中常用的加密解密方法,包括ASP、HTML、JavaScript(JS)和VBScript(VBS)的编码与反编码,以及简易的ASP加密解密小程序的应用。 首先,ASP中的加密通常涉及到字符串的哈希处理和对称加密。哈希...
首先,本文主要讲述了在PHP中实现JavaScript中escape和unescape函数功能的方法。JavaScript中的escape函数可以将字符串转换为unicode十六进制编码,而unescape函数则可以将这种编码转换回原始字符串。由于JSON的编码...
JavaScript加密解密技术是网页开发中保护代码不被轻易复制的一种策略。虽然JavaScript代码在浏览器中执行,使得绝对保密变得困难,但是通过各种加密手段,可以增加破解的难度。以下介绍七种JavaScript加密方法: 1....
以上内容详细介绍了PHP中的escape函数及其应用场景,包括如何处理JS中URL的特殊编码和在JSON数据交互中的编码问题。通过自定义函数的实现,文章还展示了如何在PHP中进行编码,以及如何正确地反解编码。这对于需要在...