simplehtmldom 将 Table 组合成一个 Table in simplehtmldom

simplehtmldom Combine Tables into a Single Table in simplehtmldom

我正在使用 SimpleHTMLdom 并提取 html 文件。 我的代码如下:

include_once('simple_html_dom.php');          
$curl = curl_init();

$link = "http://example.com/q/?id=123456");
curl_setopt($curl, CURLOPT_URL, "$link");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$file_contents = curl_exec($curl);     
$html = str_get_html($file_contents);    
$elem = $html->find('div[id=hCStatus_result]', 0)->innertext;  
echo $elem;

实际上我正在提取的页面有一个 Div 被提取但结果我得到了很多 tables。具有相同的 TD class.. 我想将它们作为单个 table ..

结构如下:

<div id="hCStatus_result" style="height:120px;overflow:auto;">
<table style="width:100%;" >
<tr > <td width="7%" align="center" class="tbcellBorder">1</td><td width="30%" align="center" class="tbcellBorder">Name1</td><td width="20%" align="center" class="tbcellBorder">Details</td> <td width="43%" align="center" class="tbcellBorder">Status OK</td></tr></table>
<table style="width:100%;" ><tr ><td width="7%" align="center" class="tbcellBorder">2</td><td width="30%" align="center" class="tbcellBorder">Name2</td><td width="20%" align="center" class="tbcellBorder">Details</td> <td width="43%" align="center" class="tbcellBorder">Status OK</td></tr>
</table>        <table style="width:100%;" >        <tr >        <td width="7%" align="center" class="tbcellBorder">        3    </td>     <td width="30%" align="center" class="tbcellBorder">    Name3    </td>    <td width="20%" align="center" class="tbcellBorder">    Details    </td>    <td width="43%" align="center" class="tbcellBorder">    Status OK    </td>    </tr></table>        </div>

表数根据我们查询的ID号增减 现在任何人都可以帮助如何将它作为一个单一的 table...

您只需迭代所有 tr 并将它们添加到新的 table:

$str = <<<EOF
<table>
  <tr><td>table 1 - tr 1</td></tr>
</table>    
<table>
  <tr><td>table 2 - tr 1</td></tr>
</table>    
EOF;

$html = str_get_html($str);

$table = '<table>';
foreach ($html->find('tr') as $tr){
  $table .= $tr;
}
$table .= '</table>';

echo $table;