热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysqlupdatereplace正则_PHP正则表达式核心技术完全详解第5节php正则替换函数

作者:极客小俊一个专注于web技术的80后你不用拼过聪明人,你只需要拼过那些懒人你就一定会超越大部分人!说到替换呢这里我觉得首先要回忆一下字符串的相关替换函数!str

作者:极客小俊

一个专注于web技术的80后

你不用拼过聪明人,你只需要拼过那些懒人 你就一定会超越大部分人!


67d4b526b4258d970a58c86a48952a13.png

说到替换呢 这里我觉得首先要回忆一下字符串的相关替换函数!

str_replace() 在字符串中查找字符,然后替换成想要的字符 str_ireplace() 在字符串中查找字符,然后替换成想要的字符 (不区分大小写) 小提示 str_replace() 函数是全局替换

练习: 在字符串中查找数组对应的字符,设为红色 代码如下:

 //在字符串中查找数组对应的字符,设为红色  $string='[北京市朝阳区HTTP://www.baidu.com     天安门北京市朝阳区http://www.sina.com天安门     北京市朝阳区HTTP://www.163.com天安门]'; ​ $data=[     'http://www.baidu.com',     'http://www.sina.com',     'http://www.163.com' ]; ​ //处理之前 echo nl2br($string); ​ echo ''; ​ foreach ($data as $k=>$v){     //这里使用的是不区分大小写的str_ireplace()方法来替换     $string=str_ireplace($v, ''.$v.'', $string); } ​ //处理之后 echo nl2br($string); ​


str_replace()方法中的参数 有三种使用技巧 第一种: str_replace(string,string,string,替换次数); 代码如下:

 $string="online project php hosting user git includes php source-code php browser ,  php in-line editing wikis and ticketing free for public php open-source code!"; $search='php'; $replace='php'; echo str_replace($search, $replace, $string,$count); echo '
'; echo '替换的次数是:'.$count.'次!';


第二种: str_replace(array,string,string,替换次数); 粗暴点 , 代码如下:

 $string="online project 美国 php hosting 日本 user git includes php 韩国 source-code php browser ,  php in-line editing 法国 wikis and ticketing 澳大利亚 free for public php open-source code!"; //查找的数据 $search=array(     '美国',     '日本',     '韩国',     '法国',     '澳大利亚' ); //替换为 $replace='***'; ​ //开始替换 echo str_replace($search, $replace, $string,$count); echo '
'; echo '替换的次数是:'.$count.'次!';


第三种: str_replace(array,array,string,替换次数); 代码如下:

 $string="online project 美国 php hosting 日本 user git includes php 韩国 source-code php browser ,  php in-line editing 法国 wikis and ticketing 澳大利亚 free for public php open-source code!"; ​ //查找的数据 $search=array(     '美国',     '日本',     '韩国',     '法国',     '澳大利亚' ); ​ //替换为 $replace=[     '***',     '???',     '###',     '@@@',     '&&&', ]; ​ //开始替换 echo str_replace($search, $replace, $string,$count); echo '
'; echo '替换的次数是:'.$count.'次!';


以上就是回顾了一下 字符串中的替换,别走开,接下来我们才要进入正则函数替换的正题哦!

PHP正则替换函数 preg_replace(); 正则中替换函数、返回值可能是一个字符串也可能是一个数组

  1. 正常使用 preg_replace(参数..) 参数列表: 参数1: 正则字符串或者正则数组参数​replacement替换为的字符串 或者 字符串数组 参数3: $string处理的字符串 或者 字符串数组 参数4: 每个模式在每个字符串上进行替换几次数,默认是 -1 全部替换 参数5: 记录替换次数的引用变量 代码案例如下:

 $string="online project php hosting mysql user git includes php source-code php browser  php in-line editing wikis and ticketing free for public Javascript open-source code!"; //查找的数据 $search='/php | mysql | Javascript/'; //替换为 $replace=''; //开始替换 echo preg_replace($search, $replace,$string);


  1. 使用子模式进行替换 子模式可以用到第二个参数当中 代码案例如下:

 $string="online project php hosting mysql user git includes php source-code php browser ,  php in-line editing wikis and ticketing free for public Javascript open-source code!"; //查找的数据 $search='/(php | mysql | Javascript)/'; //替换为 这里要记得字符串的单双引号对反向引用的作用哦! 前面提到过 !!不懂的同学可以回去看看!! $replace=""; //开始替换 echo preg_replace($search, $replace,$string);


  1. 在前两个参数中都使用数组,可以一起将多个模式(正则)同时替换对应的多个值 替换UBB代码, 这里就不介绍UBB是什么了 自己百度一下就会知道简单地一匹 代码案例图如下:

  $string="online [align=left][b]PHP开发[/b][/align] project [u]php[/u] hosting mysql user git includes php source-code php browser ,  php in-line [b]editing[/b] wikis and ticketing free for [font size=7]public[/font] Javascript open-source code! A better way to work together [align=center][color color=red]GitHub[/color][/align] brings teams [color color=blue]together[/color] to work through problems, move ideas forward, and learn from each other along the way. [img width=100]http://localhost/test3/1.jpg[/img]"; ​ //替换之前 echo $string; echo ''; ​ //查找的数据 $pattern=array(     '/[u](.+)[/u]/',     '/[b](.+)[/b]/',     '/[align=(left|center|right)](.+)[/align]/',     '/[font(s+)?(size=d)?](.+)[/font]/',     '/[color(s+)?color=([a-zA-Z]+)?](.+?)[/color]/',     '/[imgs(width=d{1,3})?](.+)[/img]/' ); //替换为 $replace=array(     '${1}',     '${1}',     '

${2}

',     '${3}',     '${3}',     '%24%7B2%7D' ); ​ //开始替换 $result=preg_replace($pattern, $replace,$string); echo $result; echo '';

注意: 在php7以后preg_replace()函数第一个参数正则中已经不支持e这个模式修正符号、也就是不再支持/e修饰符,如果要使用函数就请用: preg_replace_callback()函数

preg_replace_callback(参数..)函数 作用: 执行一个正则表达式搜索并且使用一个回调进行替换,匹配到的字符和子组都包含在回调函数的参数当中 参数列表: 参数1: 正则字符串 或一个数组 参数2: 处理替换的回调函数 支持 普通函数、匿名函数、类方法 参数3: 处理的字符串 参数4: 每个模式在每个字符串上进行替换几次数,默认是 -1 全部替换 参数5: 记录替换次数的引用变量 例1:匿名函数替换 代码案例如下

 $string='Assign up to ten teammates to an issue or pull request to make sure work has an owner. Mentioning other people or teams mysql in the issue will notify them if php something changes. Javascript They can also stay in the php loop by opting to receive notifications whenever someone post'; $pattern='/mysql|php|Javascript/'; echo preg_replace_callback($pattern, function($arr){     //show($arr);     echo $num++;     return ''.strtolower($arr[0]).''; }, $string);


例2:类的方法替换方法 代码案例如下

$string='Assign up php to ten teammates to an issue or pull request to makesure work has an owner. Mentioning other people or teams mysqlin the issue will notify them if php something changes. JavascriptThey can also stay in the php loop by opting to receive notifications whenever someone post';$pattern=array( '/php/i', '/Javascript/', '/mysql/');class Replace{ static public function txt($replace) { show($replace); if($replace[0]=='php'){ return ''.$replace[0].''; } return ''.$replace[0].''; }}$result=preg_replace_callback($pattern, 'Replace::txt', $string);echo $result;

dd00e19107d80a132c535470eceafeee.png
7914e1e237b270fd6b10622e7aaa1d73.gif
f771799793da6675a9d086b85f5a6ad7.gif

今日头条@极客小俊,首发原创文章

如果喜欢话请 "点赞 评论 收藏" 一键三连

大家的支持就是我坚持下去的动力!

不要忘了❤️哦!

B站: https://space.bilibili.com/395999414



推荐阅读
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • PHP引用的概念和用法详解
    本文详细介绍了PHP中引用的概念和用法。引用是指不同的变量名访问同一个变量内容,类似于Unix文件系统中的hardlink。文章从引用的定义、作用、语法和注意事项等方面进行了解释和示例。同时还介绍了对未定义变量使用引用的情况,以及在函数和new运算符中使用引用的注意事项。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • php缓存ri,浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
    thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期和缓存对象。S()缓存方法支持有效期,又称动态缓存方法。本文是小编日常整理有关thinkp ... [详细]
author-avatar
记忆簿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有