• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

preg_replace替换内容中间部分

php 搞代码 3年前 (2022-01-23) 21次浏览 已收录 0个评论

需求是这样:用正则匹配一个HTML文件中标记中的图片地址

最初的实现:

$img = '';$newImg = preg_replace('//i','',$img);echo $newImg;


这样虽然没有问题,但是不符合我最初的想法,我的想法是只替换src里的内容,保留左右两边的标签及属性。

看手册,对preg_replace()中第二个参数有这样的描述:

replacement中可以包含后向引用\\n 或(php 4.0.4以上可用)$n,语法上首选后者。每个这样的引用将被匹配到的第n个捕获子组捕获到的文本替换。 n 可以是0-99,\\0和$0代表完整的模式匹配文本。 捕获子组的序号计数方式为:代表捕获子组的左括号从左到右, 从1开始数。

“翻译”成菜鸟语言就是正则表达式中的每个组可以在该参数中用\\n或者$n代替

OK,对程序做个小改造就可以满足需求啦

$img = '';$newImg = preg_replace('/()/','$1aaa.jpg$3',$img);echo $newImg;

bbb.jpg本来可以用$2表示,但是这里我们需要进行替换,所以直接用aaa.jpg替换就ok;

” style=”…”..>分为组3,同1

done

在手册中也说到这样一个问题,如果我们的aaa.jpg要更名为1.jpg 那么replacement就变成了$11.jpg$3,组1的名产生了歧义,办法就是改成${1}1.jpg${3},所以在实际应用中,无论会不会产生歧义,加上大括号更严谨些

以上就介绍了preg_rep*本5文来源gaodai$ma#com搞$$代**码)网@搞代码gaodaimalace替换内容中间部分,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:preg_replace替换内容中间部分

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址