使用文件获取内容将所有图像src提取到数组中

时间:2010-08-30 08:26:16

标签: php

我有以下获取图像的功能......

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) """ } }

虽然我只想获取图片...我如何删除所有文字并获取所有图片

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

var_dump($match);功能中删除getImages

并且,如果您在执行此操作后绝对没有输出,请将echo $img;更改为echo $img[0];