用domDocument类计算单词

时间:2010-04-08 11:56:36

标签: php domdocument

如何使用domDocument计算html页面中的单词?

例如,如果输入类似于:

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

输出:
数字字
1你好 2件事 3打开 4单击
5 lorem
6 ipsum
7这里。

如果我只需要linktext怎么办? 点击4
这里7

1 个答案:

答案 0 :(得分: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 expression只会为您提供文档中的文本节点。您可以将此限制为仅返回表达式为//a/text()的链接文本。

相关问题