Preg替换PHP中的图像源但不替换图像链接

时间:2013-08-19 17:37:26

标签: php regex preg-replace

我在CMS数据库中有一些内容,其中所有图像都有一个点击缩放插件。

图像的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做到这一点 - 我假设preg替换是答案,但它很棘手,因为我需要

  1. 仅替换标记中的图像文件名,而不是标记中的完整尺寸图像的链接。

  2. 追加“-thumbnail.jpg”,无论图像是png还是jpg文件(所有缩略图都是jpg,但有些全尺寸图像是png。

  3. 由于

1 个答案:

答案 0 :(得分:3)

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

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