2010-08-30 155 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