抢行,然后从表中获取单元格

时间:2018-06-26 08:36:19

标签: php html simple-html-dom

我正在使用Simple HTML Dom Parser来抓取一张桌子(在图像中),然后抓取每个<f:metadata> <f:viewParam name="from_name" value="#{bean.fromName}" /> </f:metadata> 。这会将行中的所有项目输出为一个字符串。

tr

enter image description here

如何创建一个数组,将数据保留在行中,但也允许我输出单个单元格?我希望能够说一行中有7个单元格(这可能很灵活),并且能够将行中的每个单元格作为变量输出(我需要对它们进行其他处理)。


$contents = $html->find('div[class=product-table]', 0);
$titles = $contents->find('tr');

1 个答案:

答案 0 :(得分:3)

就像我在评论中所说的那样,对待行的第一个循环,对于每一行,对每个单元格都对待另一个循环。所以基本上您需要两个。

由于您没有示例标记,因此无需进行太多操作,但这是一个主意:

$data = array();
$rows = $contents->find('tr');
foreach ($rows as $key_row => $row) {
    // process rows here
    foreach ($row->find('td') as $key_cell => $cell) {
        // process each cell on the current row iteration
        echo $cell->innertext;
        // or whatever you need to do in each cell (calculations and whatnot)
        // $data[] = then push it inside an array (you can prolly use the keys and use it in `$data`)
    }
}

旁注:请注意,如果您希望跳过标题,只需使用一个计数器和带有继续条件的if条件,那么您就很好了。