1

2つのforeachループがあります。1つは与えimage href="URL"s、もう1つは与えますimage src="URL"s

これらの2つのループを組み合わせて画像を表示するにはどうすればよいですか?

画像の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

これについては、すべてを1つのループで実行する方法について考えますが、それまでは、すべてを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 に答える