我正在寻找一些 PHP 代码或 rexeg 表达式(我对 regexp 不太熟练)来从 html 文件中提取链接的图像。换句话说,只是看起来像这样的 html 块:<a href=...><img src=...></a>我知道如何分别提取图片和链接$links = $dom->getElementsByTagName('a');
$images = $dom->getElementsByTagName('img');但不是如何在另一个中提取两个标签。我也没有通过谷歌搜索找到任何东西。那么我想做的事情可能不常见还是非常困难?你可以帮帮我吗?谢谢。
2 回答
MYYA
TA贡献1868条经验 获得超4个赞
您可以使用以下 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]
慕仙森
TA贡献1827条经验 获得超8个赞
没有 xpath可以的解决方案是:
$links = $domDocument->getElementsByTagName('a');
foreach ($links as $link) {
$img = $link->getElementsByTagName('img');
// getting first element of DOMNodeList
print_r($img->item(0));
}
- 2 回答
- 0 关注
- 92 浏览
添加回答
举报
0/150
提交
取消