我在检索作为链接一部分的图像的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?
答案 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);