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 ));

text()用作XPath表达式只会为您提供文档中的文本节点。您可以将此限制为仅返回带有//a/text()表达式的链接文本。

于 2010-04-08T12:14:13.633 回答