使用PHP Simple HTML DOM Parser提取HTML文件的特定部分

时间:2015-05-29 19:37:35

标签: php html parsing dom extract

我有一个带有几个表的HTML文件,我尝试从中提取链接和图像部分。我正在使用PHP Simple HTML DOM Parser。

这是要解析的HTML文件:

<h1>Title</h1>
<p>Text</p>

<table cellspacing="0" cellpadding="0" border="0">
    <tbody>
        <tr><td>
            <a href="http://www.google.com/some_url">
                <img width="100" height="100" border="0" src="http://google.com/some_image.jpg"/>
            </a>
        </td></tr>
    </tbody>
</table>

<h2>Title</h2>
<p>Text</p>

<table cellspacing="0" cellpadding="0" border="0">
    <tbody>
        <tr><td>
            <a href="http://www.google.com/this_url">
                <img width="100" height="100" border="0" src="http://google.com/this_image.jpg"/>
            </a>
        </td></tr>
    </tbody>
</table>

<p>Text</p>
<p>Text</p>

我需要的是输出:

<a href="http://www.google.com/some_url">
    <img width="100" height="100" border="0" src="http://google.com/some_image.jpg"/>
</a>

<a href="http://www.google.com/this_url">
    <img width="100" height="100" border="0" src="http://google.com/this_image.jpg"/>
</a>

这是PHP部分 - 但不能按照我想要的方式工作......

<?php

// Include the library
include('simple_html_dom.php');

// Retrieve the DOM from a given URL
$html = file_get_html('http://google.com');

// Find all images & links
foreach($html->find('img') as $IMGelement)
foreach($html->find('a') as $Aelement)
echo '<a href="' . $Aelement->href . '"><img src="' . $IMGelement->src . '" /><br>';

?>

1 个答案:

答案 0 :(得分:1)

我想你想在标签中找到一个img:

foreach($html->find('a img') as $IMGelement) {
    echo '<a href="' . $IMGelement->parent()->href . '"><img src="' .$IMGelement->src .'" /><br>';
}