在链接中获取img src

时间:2014-06-07 02:44:53

标签: php html

我在检索作为链接一部分的图像的src时遇到问题。例如,我想检索标签之间的img的src。 <a href="/video1234/the_vid"><img src="http://example.com/picture1234.jpg" id="pic_1234" /></a> 我将需要对页面上的几个链接执行此操作,这些链接都是相同的。所以我到目前为止尝试的是:

    $dom = new DOMDocument;

    @$dom->loadHTML($html);

    $i = 0;
    $links = $dom->getElementsByTagName('a');
    //Get images
foreach ($links as $link){
    $test = $link->getAttribute('href');
    if (strpos($test,'/video') !== false) { 
        $XV_IMG[$i] = $link->nodeValue;
        $i++;
    }
}

如果该链接仅包含img标记,而是具有纯文本,则它将正常工作。有没有办法获得src?

2 个答案:

答案 0 :(得分:1)

继续在节点上继续使用getElementsByTagName

foreach ($link->getElementsByTagName('img') as $img) {
  $XV_IMG[] = $img->getAttribute('src');
}

答案 1 :(得分:1)

尝试使用preg_match_all

$html=  '<a href="/video1234/the_vid"><img src="http://example.com/picture1234.jpg" id="pic_1234" /></a>
<a href="/video1224/the_vid"><img src="http://example.com/picture1224.jpg" id="pic_1224" /></a>
<a href="/video1434/the_vid"><img src="http://example.com/picture1434.jpg" id="pic_1434" /></a>
<a href="/video1554/the_vid"><img src="http://example.com/picture1554.jpg" id="pic_1554" /></a>
<a href="/video1334/the_vid"><img src="http://example.com/picture1334.jpg" id="pic_1334" /></a>';

preg_match_all('/<a href="(.*)"><img src="(.*)" id="pic_[0-9]{1,7}" \/><\/a>/i',$html,$out);
unset($out[0]);
unset($out[1]);
print_r($out);