首页 > 后端开发 > php教程 > 求轮换全局img图片的正则表达式

求轮换全局img图片的正则表达式

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-13 12:00:43
原创
958 人浏览过

求替换全局img图片的正则表达式
如题
现在有一字符串是

$content = '

求轮换全局img图片的正则表达式求轮换全局img图片的正则表达式test

';

想要将这字符里面的 images/tmp 都替换成 images/pub

本人已经写了一个函数

1

<br /><br />    public static function replace_img_publish_path($content){<br />      $pattern='/(<[img|IMG].+src=\"?.+)(images\/tmp\/)(.+\.(jpg|gif|bmp|bnp|png)\"?.+>)/';<br />     $replacement="\${1}images/pub/\${3}";<br />       print  preg_replace($pattern, $replacement, $content);<br />      exit;<br />   }<br /><br />

登录后复制


输出结果为

求轮换全局img图片的正则表达式求轮换全局img图片的正则表达式test



只替换了最后一个img标签

如何才能全部都替换?
------解决方案--------------------

1

$content = '<p><img  src="/static/imghw/default1.png"  data-src="http://localhost:8080/story/images/tmp/1403530150545.jpg"  class="lazy"     style="max-width:90%" alt="求轮换全局img图片的正则表达式" ><img  src="/static/imghw/default1.png"  data-src="http://localhost:8080/story/images/tmp/1403530147265.jpg"  class="lazy"     style="max-width:90%" alt="求轮换全局img图片的正则表达式" >test</p>';<br /><br />$content = preg_replace('#(?<=src="http://localhost:8080/story/images/)tmp/#', 'pub/', $content);<br />echo $content;

登录后复制

求轮换全局img图片的正则表达式pub/1403530150545.jpg" style="width: 268px;">求轮换全局img图片的正则表达式pub/1403530147265.jpg" style="width: 268px;">test



------解决方案--------------------
你没有防止贪婪匹配。

$pattern='/(<[img
------解决方案--------------------
IMG].+?src=\"?.+?)(images\/tmp\/)(.+?\.(jpg
------解决方案--------------------
gif
------解决方案--------------------
bmp
------解决方案--------------------
bnp
------解决方案--------------------
png)\"?.+?>)/';
------解决方案--------------------
你写的方法加一个参数U就可以了。
加上U,将懒惰匹配 变成 贪婪匹配。

$pattern='/(<[img
------解决方案--------------------
IMG].+src=\"?.+)(images\/tmp\/)(.+\.(jpg
------解决方案--------------------
gif
------解决方案--------------------
bmp
------解决方案--------------------
bnp
------解决方案--------------------
png)\"?.+>)/U';

测试例子:

1

<br />$content = '<p><img  src="/static/imghw/default1.png"  data-src="http://localhost:8080/story/images/tmp/1403530150545.jpg"  class="lazy"     style="max-width:90%" alt="求轮换全局img图片的正则表达式" ><img  src="/static/imghw/default1.png"  data-src="http://localhost:8080/story/images/tmp/1403530147265.jpg"  class="lazy"     style="max-width:90%" alt="求轮换全局img图片的正则表达式" >test</p>';<br /><br />replace_img_publish_path($content);<br /><br />function replace_img_publish_path($content){<br />    $pattern='/(<[img<br><font color='#FF8000'>------解决方案--------------------</font><br>IMG].+src=\"?.+)(images\/tmp\/)(.+\.(jpg<br><font color='#FF8000'>------解决方案--------------------</font><br>gif<br><font color='#FF8000'>------解决方案--------------------</font><br>bmp<br><font color='#FF8000'>------解决方案--------------------</font><br>bnp<br><font color='#FF8000'>------解决方案--------------------</font><br>png)\"?.+>)/U';<br />    $replacement="\${1}images/pub/\${3}";<br />    print  preg_replace($pattern, $replacement, $content);<br />    exit;<br />}<br />

登录后复制


替换后:

求轮换全局img图片的正则表达式求轮换全局img图片的正则表达式test

相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板