1

我有两个foreach循环。一个给image href="URL"s,另一个给image src="URL"s

如何将这两个循环组合在一起并显示图像?

我的代码给出了图像 HREF:

foreach($doc->getElementsByTagName('a') as $a){
    foreach($a->getElementsByTagName('img') as $img){
        echo $a->getAttribute('href');
    }
}

我的代码提供图像 SRC:

foreach($html->find('img') as $e)
    echo $e->src . '<br>';
4

2 回答 2

1

尝试跟随。

foreach($doc->getElementsByTagName('a') as $a){
    echo $a->getAttribute('href');
    foreach($a->getElementsByTagName('img') as $img){
        echo $img->src . '<br>';
    }
}

您的代码正在回显a->href每张图像。如果这就是您想要做的,请尝试以下操作。

foreach($doc->getElementsByTagName('a') as $a){
    foreach($a->getElementsByTagName('img') as $img){
        echo $a->getAttribute('href');
        echo $img->src . '<br>';
    }
}
于 2012-05-05T19:07:59.343 回答
1

我会考虑如何在一个循环中完成所有操作,但在那之前,这里是如何将它们全部放入一个数组中:

$image_links = array();

foreach($doc->getElementsByTagName('a') as $a){
    foreach($a->getElementsByTagName('img') as $img){
        $image_links[] = $a->getAttribute('href');
    }
}

foreach($html->find('img') as $e)
    $image_links[] = $e->src;
 }
于 2012-05-05T19:08:49.570 回答