首页 > PHP教程 > php开发知识文章

PHP计算文件或数组中单词出现的频率

这篇文章主要介绍了PHP计算文件或数组中单词出现的频率的方法,

给出了2个统计单词频率的示例,涉及php正则、数组操作及字符串遍历等相关技巧,需要的朋友参考下

如果是小文件,我们把文件内容一次性读入到数组中,使用数组计数函数进行词频统计(假设文件中内容都是空格隔开的单词)

$str = file_get_contents("/path/to/file.txt");
preg_match_all("//b(/w+[-]/w+)|(/w+)/b/", $str, $r);
$words = array_count_values(array_map("strtolower", $r[0]));
arsort($words);
print_r($words);

如果是大文件,一次全部读入内存就不合适了,我们采用如下方法:

$filename = "/path/to/file.txt";
$handle = fopen($filename, "r");
if ($handle === false) {
exit;
}
$results = 0;
$word = "";
while (false !== ($letter = fgetc($handle))) {
if ($letter == ' ') {
$results[$word]++;
$word = "";
} else {
$word .= $letter;
}
}
fclose($handle);
print_r($results);

对于大文件,第二种方法比较快比较安全,不会引起内存异常。

PS:这里再为大家推荐2款非常方便的统计工具供大家参考使用:

在线字数统计工具:http://tools.jb51.net/code/zishutongji

在线字符统计与编辑工具:http://tools.jb51.net/code/char_tongji

以上就是本文PHP计算文件或数组中单词出现的频率的全部内容,希望本文所述对大家PHP程序设计有所帮助。

PHP基本语法

关闭
感谢您的支持,我会继续努力!
扫码打赏,建议金额1-10元


提醒:打赏金额将直接进入对方账号,无法退款,请您谨慎操作。