有这样的代码:
<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库完成吗?
答案 0 :(得分:0)
我不确定您为什么要使用PHP作为服务器端语言来访问HTML页面的内容。您可以使用JavaScript或jQuery轻松完成此操作。
但是,假设您使用某种方法读取HTML文件/ URL的内容(其中一些可能是file_get_contents,cURL,readfile等),并希望使用SimpleHTMLDom库。 你可以在下面做
步骤#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";
}
请注意,某些标签未关闭,因此结果会受到损坏。