我正在尝试获取域网页所具有的单词数,但是我得到的数字比预期的要大。例如在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');
答案 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);
}