猿问

如何使用 PHP/regexp 从 html 页面中提取链接图像

我正在寻找一些 PHP 代码或 rexeg 表达式(我对 regexp 不太熟练)来从 html 文件中提取链接的图像。换句话说,只是看起来像这样的 html 块:

<a href=...><img src=...></a>

我知道如何分别提取图片和链接

$links = $dom->getElementsByTagName('a');
$images = $dom->getElementsByTagName('img');

但不是如何在另一个中提取两个标签。我也没有通过谷歌搜索找到任何东西。那么我想做的事情可能不常见还是非常困难?

你可以帮帮我吗?谢谢。


天涯尽头无女友
浏览 93回答 2
2回答

MYYA

您可以使用以下 XPath 查询://a[./img]这意味着任何<a>以 a<img>作为其直接子元素的元素。使用PHP 的 DOM API,它看起来像这样:$domDocument = new \DOMDocument();$domDocument->loadHTML($html);$xpath = new DOMXPath($domDocument);$imageLinks = $xpath->query('//a[./img]');演示:https ://3v4l.org/GXAbC如果图像可以在 DOM 树的更下方,您可以将 XPath 查询更改为://a[.//img]

慕仙森

没有 xpath可以的解决方案是:$links = $domDocument->getElementsByTagName('a');foreach ($links as $link) {&nbsp; &nbsp; $img = $link->getElementsByTagName('img');&nbsp; &nbsp; // getting first element of DOMNodeList&nbsp; &nbsp; print_r($img->item(0));}
随时随地看视频慕课网APP
我要回答