1

domDocument を使用して、HTML ページ内の単語をカウントするにはどうすればよいですか?

たとえば、入力が次のような場合:

    <div> Hello something open. <a href="open.php">click</a> 
    lorem ipsum <a href="open.php">here></a>

出力:
Number Word
1 Hello
2 something
3 open
4 click
5 lorem
6 ipsum
7 here.

リンクテキストだけが必要な場合はどうすればよいですか?
ここをクリック 4
ここをクリック 7

4

1 に答える 1

2

ドキュメント全体でこれが必要な場合は、結果に対してstrip_tags実行する方が簡単です。str_word_count

DOMでこれを行う必要がある場合は、行うことができます

$str = <<< HTML
<div> Hello something open. <a href="open.php">click</a>
lorem ipsum <a href="open.php">here></a></div>
HTML;

$dom = new DOMDocument;
$dom->loadHTML($str);

$xpath = new DOMXPath($dom);
$nodes = $xpath->query('//text()');

$textNodeContent = '';
foreach($nodes as $node) {
    $textNodeContent .= " $node->nodeValue";
}
print_r(str_word_count( $textNodeContent, 1 ));

XPath 式text()として使用すると、ドキュメント内のテキストノードのみが得られます。これを制限して、式のリンク テキストを返すだけにすることができます。//a/text()

于 2010-04-08T12:14:13.633 に答える