PHP的解析HTML DOM和计数特定行(Php parse html dom and count

2019-07-29 06:34发布

我使用的是“ 简单的PHP DOM解析器 ”来解析HTML表格和计数其行。

我解决了计算中的所有行(TR)使用此代码:

$rows = $table->find('.trClass');
$count = count($rows);
echo $count;

而我得到正确表中的所有行数。

现在我只想计算不包含特定TD(与特定的字符串)的行。
我们可以假设,我只想计算这个TD行:

<td class="tdClass" align="center" nowrap="">TARGET STRING</td>

如何修改的第一个代码来匹配这个范围?

我试图用“的preg_match”或“preg_match_all”但我没有在它很多经验,所以我错过了正确的syntax..I认为。

任何帮助是非常感谢!

Answer 1:

怎么样:

<?php
$targetString = 'TARGET STRING';
$rows = $table->find('.trClass');

$count = 0;
foreach($rows as $row) {
    foreach($row->find('td') as $td) {
        if ($td->innertext === $targetString) {
            $count++;
            break;
        }
    }
}


Answer 2:

$target = 'TARGET STRING';

$n_matchingrows = 0;

$rows = $table->find('tr.trClass');
foreach($rows as $row) {
    $cell = $row->find('td.tdClass[align=center][nowrap=""]', 0);
    if ($cell and $cell->innertext===$target) {
       $n_matchingrows += 1;
    }
}


文章来源: Php parse html dom and count specific rows