首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP preg_replace - 使用匹配作为键从数组中查找替换

PHP preg_replace 函数用于在字符串中执行正则表达式搜索和替换操作。这个函数使用匹配作为键从数组中查找替换。下面是一个概述:

函数签名:

代码语言:php
复制
string preg_replace ( string $pattern , string $replacement , string $subject );

参数:

  • pattern:正则表达式模式。
  • replacement:用于替换匹配项的字符串。
  • subject:要搜索和替换的字符串。

返回值:

  • 如果替换成功,则返回替换后的字符串。
  • 如果不能进行替换,则返回 FALSE。

示例:

代码语言:php
复制
$result = preg_replace("/\d+/", "Number:", "123 456");
echo $result;  // 输出 "Number: 123 456"

在这个示例中,preg_replace 函数用正则表达式 /\d+/ 替换匹配的数字,输出 "Number: 123 456"。

要获取一个更全面的答案,请提供具体的问答内容。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PHP正则之正向预查与反向预查讲解与实例

了解正向预查&反向预查前,我们先要知道正则的2个函数:preg_match_all 、 preg_replace 正向预查&反向预查 正向或反向预查都是非获取匹配,不进行存储供以后使用。...[0]中保存的是匹配结果的全文,数组的个数=匹配到结果的个数,[1] 中保存的匹配结果对应括号匹配的结果(子组),…..[n]第n个括号匹配内容。...str1 = preg_replace(perg, ‘\0’, str2 = preg_replace(perg, ‘\1’, 我们对比知道,\0 的替换内容,是匹配全文的内容,对应元素的替换...java7,但是由于我们用了非获取匹配,就不存贮7,剩下的就是java了 主要:不管是怎么替换,如果我们只要用的是 \0(完整匹配结果) 的结果进行替换,相当于匹配到了什么就替换掉原字符串的什么...:6|7)/,字符串开始向右查找; 反向则在右边: / (?<!J)a /,字符串向反方向(左)查找。 更多关于PHP正则使用技巧请查看下面的相关链接

1.7K30

Github-ThinkPHP 2.X 任意代码执行

1.漏洞描述: 版本: ThinkPHP ThinkPHP 2.x 使用 preg_replace 的 /e 模式匹配路由: $res = preg_replace('@(\w+)'....所以先来看看preg_replace这个函数,这个函数是个替换函数,而且支持正则,使用方式如下: preg_replace('正则规则','替换字符','目标字符') 这个函数的3个参数,结合起来的意思是...:如果目标字符存在符合正则规则的字符,那么就替换替换字符,如果此时正则规则中使用了/e这个修饰符,则存在代码执行漏洞。...下面是搜索到的关于/e的解释: e 配合函数preg_replace()使用, 可以把匹配来的字符串当作正则表达式执行; /e 可执行模式,此为PHP专有参数,例如preg_replace函数。...(4)用蚁剑连接: image.png (5)连接完成后去 tmp 临时文件下去查看 Flag image.png 找到flag 3.思路整理 漏洞挖掘的角度,如果采用的是关键函数查找的方式,应该是先搜索

82880

php使用正则表达式实现替换的方法

PHP正则替换preg_replace函数的使用 <?...则对应的 元素进行替换 php preg_replace有五个参数,有三个是必须参数 Preg_replace(mixed pattern, mixed replacement, mixed subject...replace也是字符串,那么所有模式都使用这个字符串来匹配; 2.pattern是数组,replace也是数组,则对应的 元素进行替换 3.如果数组pattern大于replace,则多出来的...,一种是${n},推荐使用第二种写法.会把目标字符串匹配到的pattern的原子,按照要求变化目标字符串的格式,或者匹配的原子原样输出(这里举两个例子) 把时间按照 下划线分割开来,{3}就是匹配的到...patterns的第三个原子((\d{1,2})),{4}就是匹配的到patterns的第四个原子((\d{1,2}))以此类推, 例如大家熟悉的smarty模板引擎编译后替换的方法 5.第四个参数的

2K30

看代码学安全(8 )preg_replace函数之命令执行

preg_replace:(PHP 5.5) 功能 : 函数执行一个正则表达式的搜索和替换 定义 : mixed preg_replace ( mixed $pattern , mixed $replacement...进行替换 $pattern 存在 /e 模式修正符,允许代码执行 /e 模式修正符,是 preg_replace() 将 $replacement 当做php代码来执行 漏洞解析 这道题目考察的是...preg_replace 函数使用 /e 模式,导致代码执行的问题。...这里我们需要关注 catid (下图 第4行 代码),因为 catid 作为 $name 在 preg_preolace() 函数中使用到,这是我们成功利用漏洞的关键。...修复方案 漏洞是 preg_replace() 存在 /e 模式修正符,如果正则匹配成功,会造成代码执行漏洞,因此为了避免这样的问题,我们避免使用 /e 模式修正符,如下图第7行: ?

2K30

十分钟学会正则表达式

替换字符串或数组 preg_replace($pattern, $replacement, $subject) 返回匹配过滤后的字符串或者数组。...preg_filter($pattern, $replacement, $subject)返回匹配过滤后的字符串或者数组。 这俩函数,都可以替换字符串,在字符串替换,俩函数用法完全一致。...这是最常用的方式,在PHP,推荐使用这种方式。 井号。例如#[0-9]。 大括号。例如{[0-9]}。在正则表达式,大括号还有其他作用,所以这种方式不推荐使用。...(包括空格和按tab输出的制表符) s让元字符.匹配包括换行符在内的所有字符。 e preg_replace()在替换字符串对逆向引用作正常的替换。...(替换字符串要符合php的语法规范) 例如:echo preg_replace('/(\d+),(\d+)/e', '$1+$2', '2,3');会输出5。

82150

PHP基础编程之鬼斧神工的正则表达式-正则表达式初探+常用的正则表达式函数

接收3个参数: 参数名 说明 $pattern 输入要搜索的模式,也就是正则字符串 $subject 输入字符串 &$matches 多维数组作为输出参数输出匹配结果 其中要主要到的是,第三个参数为引用参数...接收3个参数: 参数名 说明 $pattern 输入要搜索的模式,也就是正则字符串 $replacement 替换的字符串或字符串数组 $subject 要进行搜索和替换的字符串或字符串数组 preg_replace...区别只有在匹配字符串数组时preg_filter 只返回匹配结果,不匹配的直接忽略,而 preg_replace 将不匹配的结果也一起返回。 我们来看一段示例代码: 3.preg_grep() preg_grep() 函数用于返回匹配模式的数组条目。也就是说preg_grep()是阉割版的preg_filter()函数,只匹配个数,不替换文本。...也就是为每个正则表达式语法的字符前增加一个反斜线。这通常用于你有一些运行时字符串 需要作为正则表达式进行匹配的时候。正则表达式特殊字符有:. \ + * ? [ ^ ] $ ( ) { } = !

62610

代码审计Day8 - preg_replace函数之命令执行

下面是 第8篇 代码审计文章: Day8 - Candle 题目叫蜡烛,代码如下 preg_replace:(PHP 5.5) 功能 : 函数执行一个正则表达式的搜索和替换 定义 : mixed preg_replace...pattern 的部分, 如果匹配成功以 replacement 进行替换 $pattern 存在 /e 模式修正符,允许代码执行 /e 模式修正符,是 preg_replace() 将 $replacement...当做php代码来执行 漏洞解析 这道题目考察的是 preg_replace 函数使用 /e 模式,导致代码执行的问题。...这里我们需要关注 catid (下图 第4行 代码),因为 catid 作为 $name 在 preg_preolace() 函数中使用到,这是我们成功利用漏洞的关键。...(phpinfo())} 修复方案 漏洞是 preg_replace() 存在 /e 模式修正符,如果正则匹配成功,会造成代码执行漏洞,因此为了避免这样的问题,我们避免使用 /e 模式修正符,如下图第

89220

php面试笔记(6)-php基础知识-正则表达式考点

e:配合函数 preg_replace() 使用,可以把匹配来的字符串当作正则表达式执行 匹配preg_match() //匹配一个 preg_match_all()// 匹配所有 替换 preg_replace...后向引用:在后面的表达式,引用前面某个分组所匹配到的内容 <?php /** * Created by 冷月小白.....*)/'; //一定要用括号 $res = preg_replace($pattern,'\1',$str); //将第一个匹配到的数据放入数组 var_dump($res); //string.../u'; //贪婪模式 $res = preg_replace($pattern,'\1',$str); //将第一个匹配到的数据放入数组 var_dump($res); //string(...请看下面这道题: 请写出一个正则表达式,取出页面中所有的img标签的src值 答案: <?php /** * Created by 冷月小白.

34530

【说站】php正则替换函数的整理

php正则替换函数的整理 1、preg_filter函数用于执行一个正则表达式搜索和替换。 preg_filter()等价于preg_replace(),但它仅仅返回与目标匹配的结果。...可以是一个字符串或字符串数组。 $replacement:用于替换的字符串或字符串数组。 $subject:要进行搜索和替换的字符串或字符串数组。...2、preg_replace_callback函数执行一个正则表达式搜索并且使用一个回调进行替换。...除了可以指定一个 callback 替代 replacement 进行替换字符串的计算,其他方面等同于 preg_replace()。...$callback: 一个回调函数,在每次需要替换时调用,调用时函数得到的参数是subject 匹配到的结果。 $subject: 要搜索替换的目标字符串或字符串数组

1.1K30

代码审计day5

当应用在调用一些能将字符串转化成代码的函数(如php的eval)时,没有考虑到用户是否能控制这个字符串,将造成代码注入漏洞。...狭义的代码注入通常指将可执行代码注入到当前页面,如php的eval函数,可以将字符串代表的代码作为php代码执行,当前用户能够控制这段字符串时,将产生代码注入漏洞 常见函数 eval和assert 回调函数...动态执行函数 preg_replace函数 1.eval()、assert()将输入的字符串参数作为PHP程序代码来执行 2.回调函数mixed call_user_ func ( callable...> 3.动态执行函数 1.定义一个函数 2.将函数名(字符串)赋值给一个变量 3.使用变量名代替函数名动态调用函数 4.preg_replace mixed preg_replace ( mixed $...用于替换的字符串或字符串数组 $subject要进行搜索和替换的字符串或字符串数组 $pattern存在/e模式修正符修饰 允许代码执行 正则表达式 正则表达式语法规则

52210

15个实用的PHP正则表达式

对于开发人员来说,正则表达式是一个非常有用的功能,它提供了 查找匹配替换 句子,单词,或者其他格式的字符串。这篇文章主要介绍了15个超实用的php正则表达式,需要的朋友可以参考下。..."; } 从一个字符串 突出某个单词 这是一个非常有用的在一个字符串匹配出某个单词 并且突出它,非常有效的搜索结果 $text = "Sample sentence from KomunitasWeb...Append the following line to it: strong.search-excerpt { background: yellow; } HTML文档获得全部图片 如果你曾经希望去获得某个网页上的全部图片...Apache服务器,如果你的网站也是,那么使用PHP正则表达式解析 apache 服务器日志 怎么样?...[0-9])[-_a-zA-Z0-9]{6,}z' WordPress: 使用正则获得帖子上的图片 我知道很多人是WORDPRESS的使用者,你可能会喜欢并且愿意使用 那些帖子的内容检索下来的图像代码

65910

WEB安全基础 - - -命令执行漏洞

[, int $limit = -1 [, int &$count ]] ) preg_replace — 执行一个正则表达式的搜索和替换 //preg_replace(' 正则规则 ',' 替换字符 ' , ' 目标字符 ') //PCRE修饰符 e : preg_replace() 在进行了对替换字符串的后向引用替换之后..., // 将替换后的字符串作为 php 代码评估执行 (eval 函数方式 ), 并使用执行结果作为实 际参与替换的字符串 4. array_map  array_map ( callable...php $cmd=$_POST['cmd']; $array[0]=$cmd; call_user_func_array("assert",$array); //将传入的参数作为数组的第一个值传递给...该函数把输入数组的每个键值传给回调函数。如果回调函数返回 true,则把输入数组的当前键值返回结果数组数组键名保持不变。 <?

1.3K20

PHP正则表达式和字符串匹配

正则表达式正则表达式是一种可以用来匹配字符串的模式。在PHP,可以使用preg_match()函数来使用正则表达式进行匹配。...正则表达式函数在PHP,有多个函数可以用于正则表达式匹配。以下是一些常用的函数:preg_match():在字符串查找匹配的模式。如果匹配成功,返回1;否则返回0。...preg_match_all():在字符串查找所有匹配的模式。如果匹配成功,返回匹配次数;否则返回0。preg_replace():在字符串替换匹配的模式。...如果匹配成功,返回替换后的字符串;否则返回原始字符串。preg_split():将字符串分割为数组使用正则表达式进行分割。...如果匹配成功,返回一个包含分割后的子串的数组;否则返回一个包含原始字符串的数组

1.2K30

webshell变形记之一

> 级别:2 说明:可疑变量函数 时间:2022/3/4 str_replace 匹配字符串进行替换 级别:4 说明:assert 时间:2022/3/4 preg_replace preg_replace是一个正则表达式替换字符串的函数,其中提供了很多模式给用户使用,比如\i就是不区分大小写,/...其中/e非常危险,使用不当会被执行命令,/e在匹配到第一个符合的字符后,会先执行后面的内容,然后再继续匹配,据说是在PHP5.5后的版本就被弃用了,经过测试,是PHP7之后的版本启用 <?...php preg_replace('/\d/e', 'phpinfo()', '123'); //第一个参数定义了匹配数字 //第二个参数定义了匹配到数字后会被替换成phpinfo() //第三个参数要被匹配的数字...array_map将输出传进函数,然后执行函数的内容后,返回一个新的数组,如上源码所示,传进去一个数组,然后使用if判断是否又键值等于vFREE,有的话就return一个新的值,没有的话就返回刚开始传进来的值

95420
领券