php中的escape函数

PHP下escape解码函数的实现方法 在PHP中,有时候我们会遇到需要解码被escape编码的字符串的情况。本文将介绍一种实现escape解码的函数,并提供相应的源代码。通过这个简单的函数,我们可以方便地解码被escape编码的字符串,使其恢复为原始的文本内容。请注意,这个函数仅适用于escape编码的解码,如果遇到其他编码方式,可能需要使用不同的解码函数或库。函数接受一个被escape编码的字符串作为参数,并返回解码后的字符串。如有疑问,请随时提问。形式的编码,并将其替换为相应的字符。函数,并将解码后的结果打印出来。在上面的示例中,我们将。 阅读详情

在json中不支持中文,用它传送中文数据就会出现数据丢失或者乱码,必须在传送前对要发送的字符串进行编码,由于传送过去需要用js进行数据解析,考虑到js中有unescape函数,故若在php中有个escape函数,对数据进行编码,在客户端用unescape进行 解码,这样就会方便很多。

先在网上搜索一把,很多用php实现的escape函数,大同小异,比如下面一个:

function phpEscape($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);
}

这个函数可以很好的工作,但是,也许有新手不理解这个函数的原理(比如我),用起来总是不放心,现在我就来解释一下这个函数的原理。而且我认为,拿别人的代码来复用,好比站在了巨人的肩膀上,但是若不理解别人的代码,迟早要掉到地面上。

第一句: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中的escape函数 采用js对URL中的汉字进行escape编码。 <a>这样点击链接后的效时: 引用:http://127.0.0.1/shop/product_list.php?p_sort=PHP%u5F00%u53D1%u8D44%u6E90%u7F51生成了这样的效果, 很明显用PHP的urldecode()或者base64_decode()是无法反解的。 解决方法, 用PHP写一个反解函数: 复制代码 代码如下:function js_unescape( 立即下载

相关推荐

php 正确解码javascript中通过escape编码后的字符

这是很久以前收集的一个,不知道谁写的了,但经过测试没有问题~ JavaScript代码 复制代码 代码如下: function phpUnescape($escstr) { preg_match_all(“/%u[0-9A-Za-z]{4}|%.{2}|[0-9a-zA-Z.+-_]+/”, $escstr, $matches); $ar = &$matches[0]; $c = “”; foreach($ar as $val) { if (substr($val, 0, 1) != “%”) { $c .= $val; } elseif (substr($val, 1, 1) != “u”)

php解escape,PHP下escape解码函数用法示例

这篇文章主要为大家详细介绍了PHP下escape解码函数用法示例,具有一定的参考价值,可以用来参考一下。感兴趣的小伙伴,下面一起跟随512笔记的小编小韵来看看吧!GB2312编码:代码如下:function unescape($str) {$str = rawurldecode($str);preg_match_all("/%u.{4}|.{4};|d+;|.+/U",$str,$r);$ar =...

weixin_33610601的博客 811

别再手动改文献了!手把手教你定制Mendeley的GB/T 7714-2005引用格式(附常见问题修复)

本文详细指导如何定制Mendeley的GB/T 7714-2005引用格式,解决科研文献管理中的常见问题。通过深度解析Mendeley样式编辑器,精准控制作者显示规则、出版社信息精简及期刊页码处理,实现参考文献一键合规。附常见问题修复和实战调试方法,大幅提升学术写作效率。

weixin_26833503的博客 375

php中实现escape函数

function escape($sStr, $sInCharset='GBK', $sOutCharset='UTF-8'){ return str_replace('\U', '%u', strtoupper(trim(json_encode(convert_encoding($sInCharset, $sOutCharset, '车猫(17098150465)')), '"')));

hzbigdog的专栏 736

abaqus2matlab的安装与使用:如何用matlab提取abaqus的odb结果

官网abaqus2matlab官网地址matlab社区地址matlab社区地址在这里可以看到.m文件的源码论文:Abaqus2Matlab: A suitable tool for finite element post-processingabaqus2matlab可以处理.inp、.fil、.odb三种类型的文件。.inp文件:处理功能就在于只是单纯的输出inp文件,由于我自己写了自己的函数,不需要用到这个功能。

qianxin1234的博客 2019

Dify + mem0插件实战:如何让AI记住你的饮食习惯(附完整代码)

本文通过Dify平台与mem0插件实战,详细演示了如何为AI助手构建长期记忆系统,使其能记住并理解用户的复杂饮食习惯(如过敏源、饮食偏好)。文章提供了完整的工作流配置与Python代码示例,帮助开发者实现跨会话的个性化饮食建议,解决AI对话中的“健忘”问题。

lg888的博客 1096

php escape编码函数,PHP下escape解码函数的实现方法

GB2312编码:复制代码代码如下:functionunescape($str){$str=rawurldecode($str);preg_match_all("/%u.{4}|.{4};|d+;|.+/U",$str,$r);$ar=$r[0];foreach($aras$k=>$v){if(substr($v,0,2)=="%u")$ar[$k]=iconv("UCS-2","GBK",...

weixin_42350554的博客 556

bert-ini:一种基于bert的实体对齐交互模型

本次分享一项来自IJCAI-20的实体对齐工作,该工作提出了一种不同于以往的采用图结构信息进行实体对齐的技术方案,该方案取得了当时的最好效果;不仅如此,模型本身的对齐效率在该项工作中也被考虑,实际工作中非常具备借鉴意义。

qq_33331424的博客 3155

php版的escape函数

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=>

xuzuning的专栏 8897

Vim 入门到够用:Linux 文本编辑器的三种模式、常用操作与实战技巧

i 进入编辑模式Esc 退出编辑模式回到命令模式: 从命令模式进入底行模式编辑,不一定非得“打开就直接打字”。一旦你接受了“模式”这件事,后面很多操作都会顺起来。学 Vim,不要追求一次学全,先把“命令模式—编辑模式—底行模式”这条主线练熟。只要这条主线通了,后面的复制、删除、搜索、替换,都是顺手补上去的能力。

Web安全工具库 804

Claude Code 100个真实案例 - 用AI搭建GIS地理信息系统(地图标注+热力图)

本案例展示如何使用 Claude Code 从零搭建一个完整的 GIS 地理信息系统。我们将使用 Python + Flask 作为后端,Leaflet.js 作为前端地图引擎,实现地图标注、热力图展示、区域绘制、坐标搜索等功能。全程通过与 Claude Code 对话完成,让你感受 AI 在地理信息领域的强大开发能力。

yueyeguzhuo的专栏 113

javascript escape php_解析php中的escape函数

采用js对URL中的汉字进行escape编码。这样点击链接后的效时:引用:http://127.0.0.1/shop/product_list.php?p_sort=PHP%u5F00%u53D1%u8D44%u6E90%u7F51生成了这样的效果, 很明显用PHP的urldecode()或者base64_decode()是无法反解的。解决方法, 用PHP写一个反解函数:function js_u...

weixin_33726568的博客 294

ROS从入门到精通2-1:机器人3D可视化工具——Rviz

本文详细介绍了Rviz是什么?为什么要使用这个工具?清晰地列出了Rviz的安装流程和界面的基本功能元素;讲解了Rviz基本数据类型与话题,并用两个实例深入理解Rviz数据可视化的过程

FRIGIDWINTER的博客 5350

php escape编码函数,php escape URL编码函数

php escape URL编码函数发布于 2014-10-06 16:17:12 | 80 次阅读 | 评论: 0 | 来源: 网友投递PHP开源脚本语言PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为ph...

weixin_35101659的博客 376

C语言读取CSV文件的方法1

逗号分隔值文件格式(CSV),以纯文本形式存储表格数据,它是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。本文介绍利用C语言标准库中的一个字符串处理函数 strtok()来对CSV文件内容进行读取的基本方法

白马负金羁 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

php中{$msg|escape},php中escape函数的实现方法详解

采用js对URL中的汉字进行escape编码。,点击链接后的效果类似这样:http://127.0.0.1/shop/product_list.php?p_sort=%u5F00%u53D1%u8D44%u6E90%u7F51可见PHP的urldecode()或者base64_decode()是无法反解的。可以考虑用php实现一个反解函数,如下:复制代码 代码示例:function js_unes...

weixin_42558758的博客 158

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

js unescape 对应php的函数,PHP实现javascript的escape和unescape函数

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

weixin_39690958的博客 202

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

php实现Javascript的escape和unescape函数

<br />由于需要用到php调用js文件,在网上找了相关的资料,并改写了相关的方法。<br /> <br />php实现 Javascript的escape函数方法:<br />function escape($str) { preg_match_all("/[/xc2-/xdf][/x80-/xbf]+|[/xe0-/xef][/x80-/xbf]{2}|[/xf0-/xff][/x80-/xbf]{3}|[/x01-/x7f]+/e",$str,$r); //匹配utf-8字符 $str =

cfw2006的专栏 869

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

前端开发工程师都知道javascript有编码函数escape()和对应的解码函数unescape(),而php中只有个urlencode和urldecode,这个编码和解码函数对encodeURI和encodeURIComponent有效,但是对escape的是无效的。javascript中的escape()函数和unescape()函数用户字符串编码,类似于PHP中的urlencode()函数...

weixin_34449682的博客 282

深入解析JavaScript escape函数与PHP解码技巧:网络开发必备指南

在网络开发的世界里,我们经常会遇到需要对数据进行编码和解码的情况。今天,我们就来深入探讨一下JavaScript中的escape函数以及如何使用PHP对其进行解码。JavaScript中的escape函数在JavaScript里,escape函数是一个用于对字符串进行简单编码的方法。

SuWdGTAc的博客 229

php中{$msg|escape},解析php中的escape函数

采用js对URL中的汉字进行escape编码。这样点击链接后的效时:引用:http://127.0.0.1/shop/product_list.php?p_sort=PHP%u5F00%u53D1%u8D44%u6E90%u7F51生成了这样的效果, 很明显用PHP的urldecode()或者base64_decode()是无法反解的。解决方法, 用PHP写一个反解函数:复制代码 代码如下:fun...

weixin_30915399的博客 191

用php来解析javascript函数escape编码过的字符串

用php来解析javascript函数escape编码过的字符串Filed under: PHP Programming, Javascript Programming — ranbo @ 3:46 pm PHP和Javascript都要HTML encoding的函数,但有区别,如下: PHP: urlencode( ) All punctuat

guoguo1980的专栏 1566

PHP解析js的escape()函数编码数据

// php解析js的escape()函数编码数据 function js_unescape($str) { $ret = ''; $len = strlen($str); for ($i = 0; $i &lt; $len; $i++) { if ($str[$i] == '%' &amp;&amp; $str[$i+1] == 'u') { ...

向技术大牛致敬 1306
上一篇: json,你让我欢喜让我忧
下一篇: BeforeNavigate2事件
zhsp1029
博客等级 码龄21年 115粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值