为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
天涯尽头无女友 2022-07-16 10:12:47
我正在寻找一些 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]


查看完整回答
反对 回复 2022-07-16
?
慕仙森

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));

}


查看完整回答
反对 回复 2022-07-16
  • 2 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信