Foreach数组循环

时间:2017-11-02 02:01:39

标签: php html

通过使用PHP,我想在图像URL中获取所有href和src,其中每个img src将为每个href分配如下:

<a href="http://example.com/src/abc.png"><img src="http://example.com/res/bca.png"></a>

这是我已经创建的代码。

$dom = new domDocument;
$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
$links = $dom->getElementsByTagName('a');
$images = $dom->getElementsByTagName('img');
$tags_links = array();
$tags_img = array();


foreach ($links as $link)
{
    $tags_links []  = $link->getAttribute('href');
}
foreach ($images as $image) 
{
    $tags_img [] = $image->getAttribute('src');
echo "<a href =\"".$url .$link->getAttribute('href')."\"><img src=\"".$url.$image->getAttribute('src')."\">"; 
}

但我得到的是每个img src的最后一个html分配

<a href ="http:../port287.html"><img src=../port2.png">

有关如何分配

的任何建议
<a href ="http:../port2.html"><img src=../port2.png">
<a href ="http:../port3.html"><img src=../port3.png">

1 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题......并且可以安全地假设您加载的$ html与a代码和img代码的关系为1比1。这对你来说可能更好:

for ($n=0; $n < $links->length; $n++)
{
    $href = $links->item($n)->getAttribute('href');
    $src = $images->item($n)->getAttribute('src');
    echo '<a href="'. $url . $href .'"><img src="'. $url . $src .'"></a>'; 
}

这仅适用于a代码和img代码相关的情况。否则,您需要做一些工作才能将href与哪个src相关联。