2009-08-02 37 views
0

我想爲我的圖像使用調整大小腳本(Timthumb)。我試圖從包含在後第一個圖像數據庫提取和路徑添加到它的腳本,以及一些額外的指令:PHP:拉圖像並修改其輸出

<?php 
     $content = $post->post_content; 
     preg_match_all('/src=\"https?:\/\/[\S\w]+\"/i', $content, $matches, PREG_SET_ORDER); 
     foreach($matches as $e) 
     echo '<img src="http://site/scripts/timthumb.php?'.$e[0].'&h=320&w=214&zc=1" title="" alt="">'; 
     { 
     } 
    ?> 

雖然這是呼應我所需要的,它補充說,在標籤的中間,這是缺少圖像的路徑一些雙引號(同雙引號,我需要檢測圖像):

<img src="http://site/scripts/timthumb.php?src="http://site/images/image.jpg"&h=320&w=214&zc=1" title="" alt=""> 

所以我的問題是:

  1. 如何你會做刪除這些 雙引號(而我需要他們在 第一時間搜索 模式)?
  2. 而且,您會如何處理 只拉第一張圖片的帖子?

任何輸入

回答

2

非常感謝首先,使用括號來捕捉你需要的位,URL本身。其次,如果你只需要第一個圖像,然後只需使用的preg_match,而不是preg_match_all:

$content = $post->post_content; 
if (preg_match('/src=\"(https?:\/\/[\S\w]+)\"/i', $content, $match)) 
{ 
    echo '<img src="http://site/scripts/timthumb.php?'. 
     urlencode($match[1]).'&h=320&w=214&zc=1" title="" alt="">'; 
} 

注意正則表達式的URL部分是如何標有() - 因爲這是第一個括號表示,這將是$ match數組的元素1。

我還對圖像URL進行了urlencode編碼,以確保該匹配項中的任何內容都被正確編碼以便在URL中使用。

+0

保羅:優秀!非常感謝。我在沒有urlencode的情況下使用它,因爲它給了我'%'標誌 - 是我的配置嗎?我在WAMP當地工作。 – Peanuts 2009-08-02 12:43:34