使用PHP计算文本文件中的字符出现次数

时间:2014-09-08 01:21:26

标签: php regex file

$count = 0;
$myFile = "file.txt";
$fh = fopen($myFile, 'r');

while(!feof($fh)) 
{
    $Char1 = fgetc($fh);
    if($fh == "a") 
    {
        echo $fh;
        $count++;
    }
}
fclose($fh);

echo "Total 'a' inside File: " . $count;

内容: file.txt

  

asdasdadaffl; sdgkjsdhfjkghsdfghsdkfvndm,vncmvskjdhfdafhaldfadcnasc   adkfjhasdjkalfhadlhhfdskdfhdjkfasf   aksdjfhajksdfhjkasdfhakdfasdkcsncandkn

     

asdkjfhaskdfcnslkjdshfa   asdfjkadhfkashdfdknscnaskdjf

我在这里要做的是计算在此文件中找到的字符“a”的出现次数。请帮忙。

2 个答案:

答案 0 :(得分:1)

你可以这样做:

$path = "file.txt";
$file = file_get_contents($path);
$count = preg_match_all("/a/", $file, $matches);

我们正在使用:

file_get_contents将文件读入字符串。

preg_match_all为字符串执行全局正则表达式匹配。

或者你可以这样做:

$path = "file.txt";
$count = substr_count(file_get_contents($path), "a");

修改

正如Anthony所说,如果您计划使用特大文件,则需要使用fopen

答案 1 :(得分:1)

为什么不使用像

这样的东西
$count = 0;
$myFile = "file.txt";
$fh = fopen($myFile, 'r');
while(!feof($fh)){
    $fr = fread($fh, 8192);
    $count += substr_count($fr, 'a');
}
fclose($fh);
echo 'there are ', $count, " a's";