当前位置: 首页 > news >正文

挂号网站建设搜狗搜索推广

挂号网站建设,搜狗搜索推广,wordpress数据库加密方式,鞋 东莞网站建设 技术支持正则绕过 正则表达式PHP正则回溯PHP中的NULL和false回溯案例案例1案例2 正则表达式 在正则中有许多特殊的字符#xff0c;不能直接使用#xff0c;需要使用转义符\。如#xff1a;$,(,),*,,.,?,[,,^,{。 这里大家会有疑问#xff1a;为啥小括号(),这个就需要两个来转义不能直接使用需要使用转义符\。如$,(,),*,,.,?,[,,^,{。 这里大家会有疑问为啥小括号(),这个就需要两个来转义但是中括号[]和大括号{}仅转义左侧。这样的原因是存在一个特殊含义组而中括号和大括号没有左侧就无法实现闭合也就无法编译。 当然里面也存在一个特殊符号“-”也是不需要转义的起到连接符的作用主要使用在[]中当做普通文本即可。 除了一些特殊字符还有一些特殊符号的表示像\d,\D,\s,\S,\w,\W,\b,\B。 还存在一些机制像贪婪匹配惰性匹配又比如存在断言像先行肯定断言、先行否定断言。这里就不多说了。 PHP正则回溯 回溯可以简单理解为返回也就是在正则匹配时依次匹配如果产生不满足正则表达式的情况则向前依次返回搜索知道匹配到为止否则正则无法匹配。 举个例子 匹配正则/\d.*g.*/gm 正则表达的含义首先匹配\d也就是先数字匹配然后是.*全部匹配匹配字母g再全部匹配。 我们的案例给这个1234as23gsfggsw正常理解应该2步差不多了。 我们在regex101.com查看一下具体匹配了几步。 这里匹配了八步。 看一下第三步 和我们想的差不多基本已经匹配完了但是这个正则没有走完也就是说它回去匹配字母g再来看一下后面两步。 开始了我们前面提到的回溯开始从后往前匹配内容也就是字母g在匹配到后就会再向后匹配正则表达式。 在PHP中回溯不是无限的也就是说回溯步数是有限制的根据英文文档显示可以回溯1000000次这是一个很大的数字。 PHP中的NULL和false 作为弱数据型语言php的比较还是比较特殊的。 PHP存在严格比较和松散比较。严格比较也就是“”松散比较“”。 松散比较比较的仅是数据的值。 严格比较比较的是数据的值和类型。 PHP下也存在一些隐式转换将NULL和false进行转换 下面就展示一下NULL和false的比较 0 false: bool(true) 0 false: bool(false)0 null: bool(true) 0 null: bool(false)false null: bool(true) false null: bool(false)0 false: bool(true) 0 false: bool(false)0 null: bool(false) 0 null: bool(false) false: bool(true)false: bool(false) null: bool(true)null: bool(false)很明显在严格模式下NULL和false相同。 回溯案例 案例1 ?php function areyouok($greeting){return preg_match(/Merry.*Christmas/is,$greeting); //正则匹配 }if(!areyouok($greeting)){if(strpos($greeting,Merry Christmas) ! false){ echo welcome to nanhang. .flag{i_Lov3_NanHang_everyThing};}else{echo Do you know .swp file?;} }else{echo Do you know PHP?; } 分析一下内容首先第一个函数里面是一个正则匹配正则匹配的内容是Merry然后任意字符然后是Christmas。 来到下面的判断先判断是否符合上面的正则不符合进入下一层否则返回打印然后又判断。 这里有意思的两个点是在判断上第一个判断是否符合正则正则则是一个字符串不符合进入下一个而下一个则判断字符串包不包含括号里的内容还要和false进行严格比较。也就是说呢要不是字符串还要和false不完全等。 首先大家想到的是第二个判断为true就好了但如果满足的话那就必须是字符串但第一个判断已经否定了。 理论成立但仍需要实测 首先字符串 所以这时候我们就要想到我们的NULL和false它们两个在严格比较下是相等的。 那这样要如何解决那greeting就不能为字符串且要为NULL数字就可以。 所以greeting[]123,就解决了。 案例2 ?php function areyouok($greeting){return preg_match(/Merry.*Christmas/is,$greeting); }$greeting$_POST[greeting]; if(!is_array($greeting)){if(!areyouok($greeting)){if(strpos($greeting,Merry Christmas) ! false){echo Merry Christmas. .flag{i_Lov3_NanHang_everyThing};}else{echo Do you know .swp file?;}}else{echo Do you know PHP?;} } else {echo fuck array!!!; } ? 这个案例是上面的升级版在这里就没有办法使用NULL来实现绕过了这里对数组也进行了判断难度可见一斑。 但是我们要想到一个问题如果我们无法匹配正则那就绕过不就可以了。 上面我们提到了PHP也就只能回溯1000000次多了就不行了如果超了正则就匹配失败也是满足我们判断条件的所以我们只需要在字符串加一些不相干的内容一直回溯超过1000000次就可以了。 所以此时的greetingMerry Christmas ‘a’*1000000。
http://www.hkea.cn/news/14321084/

相关文章:

  • 网站与网页之间的区别是什么淄博做网站
  • wordpress 字段资源网站优化排名网站
  • 商城外贸网站设计艺术品电商网站开发
  • 个人做民宿需要建立网站吗中国工厂网站
  • 做网站设计赚钱吗网站如何做好优化
  • 高端网站建设,恩愉科技新余市网站建设
  • 北京公司网站设计大良制作网站
  • 官方网站建设ppt免费制作ppt
  • 惠州网站建设制作企业网站开发 外文文献
  • 网站怎么做发送邮件的超链接seo顾问合同
  • 威海营销型网站建设简述网站建设的方法
  • 深圳住房和建设管理局官方网站网页设计手机版app下载
  • 网站概述怎么写百度app安装
  • 保定网站开发公司来宾网站建设
  • 龙岩建设局升降机网站免费发布推广的平台
  • 外贸公司网站模板免费wordpress托管站点
  • 以网站和什么为重点建设平台简述网页设计的开发流程
  • 郓城网站制作wordpress 链接新窗口
  • 简述网站开发平台及常用开发工具软文推广套餐
  • 赣州市建设工程造价管理网站俄罗斯乌克兰最新局势
  • 乐平网站设计免费的个人主页网站
  • 织梦修改网站背景颜色杭州app定制
  • 重庆网站推广运营公司国外有哪些设计网站
  • 丹麦做网站公司有哪些网站页脚的制作
  • 大学网站群建设方案智能建造平台
  • 设计网站公司有哪些南通做网站厉害的
  • 福州网站建设熊掌号贸易公司名称大全简单大气
  • 住房和城乡建设部网站三定网站不要了该如何处理
  • 中国智慧团建网站做火锅加盟哪个网站好
  • 网站素材设计框架工信部官网查询系统查询手机