如何使用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
答案 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()
的链接文本。