2010-08-30 88 views
-1

我已經爲獲取圖像下面的函數...獲取所有圖像SRC成數組文件獲取內容

function getImages($content){ 
    $regex = '/<img src=\"([^\"]*)(")/iU'; 
    preg_match_all($regex,$content,$match); 
    var_dump($match); 
    return $match[0]; 
} 

這裏我叫它...

$link = "http://mydomain.com"; 
$content = file_get_contents($link); 
$img = getImages($content); 
echo $img; 

這是工作一路很好,但問題是,它顯示了我很多文字以及圖像像

array(3) { [0]=> array(27) { [0]=> string(37) 
tring(106) "http://cdn3.diggstatic.com/story/reddit_open_to_chat_over_ben_cheezburger_huh_s_proposed_acquisition/t.png" } [2]=> array(27) { [0]=> string(1) """ [1]=> string(1) """ [2]=> string(1) """ [3]=> string(1) """ [4]=> string(1) """ [5]=> string(1) """ [6]=> string(1) """ [7]=> string(1) """ [8]=> string(1) """ [9]=> string(1) """ [10]=> string(1) """ [11]=> string(1) """ [12]=> string(1) """ [13]=> string(1) """ [14]=> string(1) """ [15]=> string(1) """ [16]=> string(1) """ [17]=> string(1) """ [18]=> string(1) """ [19]=> string(1) """ [20]=> string(1) """ [21]=> string(1) """ [22]=> string(1) """ [23]=> string(1) """ [24]=> string(1) """ [25]=> string(1) """ [26]=> string(1) """ } } 

雖然我只想獲取圖像...如何n我刪除所有文本並獲取所有圖像

回答

2

不使用正則表達式從HTML文檔中提取標籤,嘗試PHP dom extension

function getImages($content) { 
    $doc = new DOMDocument(); 
    $doc->loadHTML($content); 
    $imgElements = $doc->getElementsByTagName('img'); 

    $images = array(); 

    for($i = 0; $i < $imgElements->length; $i++) { 
     $images[] = $imgElements->item($i)->getAttribute('src'); 
    } 

    return $images; 
} 

// usage: 
$content = file_get_contents('http://www.example.com/'); 
$images = getImages($content); 

print_r($images); 
0

getImages函數中刪除var_dump($match);

而且,如果你這樣做後,完全沒有輸出,改變echo $img;echo $img[0];

+0

如果我刪除var_dum( $匹配)它沒有顯示任何內容... – 2010-08-30 08:41:56

+0

但我想要一個數組中的所有圖像逐一顯示它們 – 2010-08-30 08:46:07