获取网页上的单词数量问题php

时间:2014-08-01 13:55:54

标签: php

我正在尝试获取域网页所具有的单词数,但是我得到的数字比预期的要大。例如在Google.com上我的功能我得到180个单词,手动计数大约有30个。我注意到它还包括样式标签和javascript标签中的单词,这有点奇怪。我还检查了这个http://www.seoreviewtools.com/bulk-web-page-word-count-checker/,它只计算了6个。 我在哪里误会?

function get_page_stats($domain) {
    $str = file_get_contents($domain);
    $str = strip_tags(strtolower($str));
    $words = str_word_count($str, 1);
    $words = array_count_values($words); // added as per Avinash Babu answer
    var_dump($words);
}
get_page_stats('http://google.com');

2 个答案:

答案 0 :(得分:2)

您可以使用array_count_values()

一个简单的例子

<?php
$str = '<h1>Hello</h1> this will show <a href="ur_html_file">word</a> count of all word used this time... hello!';

print_r(array_count_values(str_word_count(strip_tags(strtolower($str)), 1)));

答案 1 :(得分:0)

我设法通过从整个网页中删除样式标记和脚本标记来很好地过滤。

function get_page_stats($domain) {
    $str = file_get_contents($domain);
    $str = preg_replace('/<style\\b[^>]*>(.*?)<\\/style>/s', '', $str);
      // remove everything between the style tags
    $str = preg_replace('/<script\\b[^>]*>(.*?)<\\/script>/s', '', $str);
      // remove everything between the script tags
    $str = strip_tags(strtolower($str));
      // remove html tags
    $words = str_word_count($str, 1);
    $words = array_count_values($words);
      // count the words
    var_dump($words);
}