使用 PHP 简单 HTML DOM 解析器提取 HTML-文件的特定部分

Extracting specific parts of a HTML-File with PHP Simple HTML DOM Parser

我有一个 HTML-文件,其中包含几个表格,我试图从中提取 link 和图像部分。我正在使用 PHP 简单 HTML DOM 解析器。

这是要解析的 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>';

?>

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

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