1

「 SimplephpDOMParser」を使用して、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 に答える