подсчет слов с помощью класса domDocument - PullRequest
1 голос
/ 08 апреля 2010

Как подсчитать слова на html-странице с помощью domDocument?

например, если ввод выглядит как:

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

выход:
Числовое Слово
1 Привет
2 что-то
3 открытых
4 клика
5 лорем
6 ипсум
7 здесь.

А что, если мне нужен только текст ссылки?
нажмите 4
здесь 7

1 Ответ

2 голосов
/ 08 апреля 2010

Если вам нужно это для всего документа, вероятно, проще всего просто 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() для выражения.

...