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

时间:2016-01-22 06:21:59

标签: php simple-html-dom

有这样的代码:

<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'>

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

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

2 个答案:

答案 0 :(得分:0)

我不确定您为什么要使用PHP作为服务器端语言来访问HTML页面的内容。您可以使用JavaScript或jQuery轻松完成此操作。

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

  1. 查找页面中的所有图片并循环浏览
  2. 从上面找到所选项目的父元素
  3. 步骤#1将为您提供所有img标签,而步骤#2将为您提供相应的父锚标签。您应该能够提取所需的属性。

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

答案 1 :(得分:0)

它看起来像这样:

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";
}

请注意,某些标签未关闭,因此结果会受到损坏。