2010-11-25 85 views
0

我有以下情況,我有一個圖像標記大約10或更多的html文件,但它有所不同。現在我想實現的是替換圖像中的圖像src標記

<img src="image1.png" .... 
<img src="image2.png" .... 

與此

<img src="<?=imageResize('image1.png',20,15)?>" ... 
<img src="<?=imageResize('image2.png',20,15)?>" ..`. 

這可能與一個PHP函數,如下面的例子

我要替換像這樣更換圖片src?

+0

img標籤總會被寫入` Gordon 2010-11-25 15:56:31

回答

3

讓我們假設當前頁面的源代碼包含在$source。嘗試一些正則表達式:

<?php 
preg_replace ('/<img src="(.+)"/Ui', '<img src="<?=imageResize(\'\\1\',20,15)?>"', $source); 
?> 
0

我看到兩種情況:

  • 你imageResize功能調整圖像大小,創建一個新的使用不同的名稱(類似image120x15.png),並傳回圖像名稱的字符串。在這種情況下,你應該這樣做:
<img src="<?php echo imageResize('image1.png',20,15);?>" ... 
  • 你imageResize實際大小調整的初始圖像和覆蓋它。在這種情況下,這樣做:
<?php imageResize('image1.png',20,15);?> 
<img src="image1.png" ... 
0

捕獲帶輸出緩衝區的輸出,然後應用正則表達式進行替換。

<?ob_strart();?> 
<img src="image1.png" /> 
<img src="image2.png" /> 

<?php 
$cnt = ob_get_clean(); 
$cnt = preg_replace ('/<img src="([^"]+)"/', '<img src="<?=imageResize(\'\\1\',20,15)?>"', $cnt);?> 

對於執行函數imageresize,您必須在eval()中運行輸出。