2013-08-19 67 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

沒問題,很高興幫助 –