如何使用 php 从图像链接中提取“href”和“src”


How do I extract both 'href' and 'src' from an image link using php?

有这样的代码:

<a href='www.link_not_required.com'>
<a href='www.link_not_required.com'>
<a href='www.link_1.com'><img src='image_1.png'></a> 
<a href='www.link_2.com'><img src='image_2.png'></a> 
<a href='www.link_3.com'><img src='image_3.png'></a> 
<a href='www.link_4.com'><img src='image_4.png'></a> 
<img src='image_not_required.png'>
<img src='image_not_required.png'>

我想提取仅包含图像的锚点以及这些图像的 src 的 href ?我不想要不包含图像的锚点链接以及不是锚点的图像的源头。

我该怎么做?可以使用 Simplehtmldom 库来完成吗?

我不确定为什么要使用服务器端语言 PHP 访问 HTML 页面的内容。你可以使用 JavaScript 或 jQuery 轻松做到这一点。

但是,假设您使用某种方法(其中一些可以是file_get_contents,cURL,readfile等)读取HTML文件/URL的内容,并希望使用SimpleHTMLDom库。你可以在下面做

  1. 查找页面中的所有图像并循环浏览它们
  2. 从上面找到所选项目的父元素
步骤#

1将为您提供所有img标签,而步骤#2将为您提供相应的父锚标签。您应该能够提取所需的属性。

所有这些都可以在 http://simplehtmldom.sourceforge.net/manual.htm 获得,我认为谷歌搜索/阅读手册并不那么困难。

它看起来像这样:

require_once('simple_html_dom.php');
$str = <<<EOF
<a href='www.link_not_required.com'>
<a href='www.link_not_required.com'>
<a href='www.link_1.com'><img src='image_1.png'></a> 
<a href='www.link_2.com'><img src='image_2.png'></a> 
<a href='www.link_3.com'><img src='image_3.png'></a> 
<a href='www.link_4.com'><img src='image_4.png'></a> 
<img src='image_not_required.png'>
<img src='image_not_required.png'>
EOF;
$html = str_get_html($str);
foreach($html->find('a') as $a){
  echo $a->href . ':' . $a->find('img',0)->src . "'n";
}

请注意,某些 a 标签未关闭,因此结果将被破坏。