2013-08-19 69 views
1

我在CMS数据库中有一些内容,其中所有图片都有一个点击缩放插件。Preg在PHP中替换图片源但不是图片链接

的HTML标记的图像看起来像这样

<div class="large-image-outer"> 

<a class="fancybox-button zoomer" data-rel="fancybox-button" title="" href="http://images.website.com/prams/folder/e3-v2/review/e3-v2-introduction-1.jpg"> 

<div class="overlay-zoom"><img class="large-image img-polaroid" src="http://images.website.com/prams/folder/e3-v2/review/e3-v2-introduction-1.jpg" alt="" title="" /> 
<div class="zoom-icon"></div> 
</div> 

</a> 

</div> 

我试图去通过数据库和用缩略图替换页面上的所有图像。每个缩略图的名称与图像相同,但末尾带有-thumbnail.jpg。所以在上面

<img class="large-image img-polaroid" src="http://images.website.com/prams/folder/e3-v2/review/e3-v2-introduction-1.jpg" alt="" title="" /> 

的例子应该

<img class="large-image img-polaroid" src="http://images.website.com/prams/folder/e3-v2/review/e3-v2-introduction-1-thumbnail.jpg" alt="" title="" /> 

我怎么能做到这一点用PHP来代替 - 我假设预浸取而代之的是答案,但它的棘手,因为我需要

  1. 只替换标签中的图像文件名称,而不是标签中全尺寸图像的链接。

  2. 追加“-thumbnail.jpg”不管图像是否是PNG或JPG文件(所有的缩略图是JPG格式,但一些全尺寸图像的PNG文件。

感谢

回答

3

一些正则表达式将在这里帮助

preg_replace('/src\=\"(.*?)\.(jpg|png)\"/', 'src="$1-thumbnail.$2"'); 
+0

我不能接受你8分钟的答案,但你是一个传奇!感谢卡尔。 – thatguy

+0

没问题,很高兴帮助 –