1

我正在使用“ Simple php DOM Parser ”来解析一个 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”,但我没有太多经验,所以我错过了正确的语法..我想。

非常感谢任何帮助!

4

2 回答 2

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;
        }
    }
}
于 2012-05-03T21:19:01.483 回答
0
$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;
    }
}
于 2012-05-03T21:20:33.233 回答