如何获取图像的src图片

时间:2014-05-21 15:36:12

标签: php html json

所以我在html中加载了一组ID为images的图像。一个例子是这样的:

<img id="images" src="video images/the wind rises.jpg" alt="" width="700" height="525" class="the-wind-rises1" />

我想要收集所有的srcs(例如video images/the wind rises.jpg) 我试过这个。但它不起作用怎么来了?:

<?php
$html = file_get_contents('http://urlofwebsite.co.uk/xxxx');

function linkExtractor($html){
    $imageArr = array();
    $doc = new DOMDocument();
    @$doc->loadHTML($html);
    $images = $doc->getElementById('images');
    foreach($images as $image) {
        array_push($imageArr, $image->getAttribute('src'));
    }
    return $imageArr;
}

echo json_encode(array("images" => linkExtractor($html)));
?>

它刚刚回归:

{"images":[]}

2 个答案:

答案 0 :(得分:4)

您正在使用getElementById,此函数应返回一个元素或null,请查看:http://www.php.net/manual/en/domdocument.getelementbyid.php

我想说下面的尝试:

$image = $doc->getElementById('images');
return $image->getAttribute('src');

如果您打算收集所有图片的来源,则必须使用getElementsByTagNamehttp://www.php.net/manual/en/domdocument.getelementsbytagname.php

function linkExtractor($html){
    $imageArr = array();
    $doc = new DOMDocument();
    @$doc->loadHTML($html);
    $images = $doc->getElementsByTagName('img');
    foreach($images as $image) {
        array_push($imageArr, $image->getAttribute('src'));
    }
    return $imageArr;
}

答案 1 :(得分:0)

因为ID(应该)是唯一的,所以它只返回一个元素

$images = $doc->getElementById('images');
array_push($imageArr, $images->getAttribute('src'));

文档:http://www.php.net/manual/en/domdocument.getelementbyid.php