如何在foreach循环外统计指定路径下所有TXT文件字符总数
汇总指定路径下文本文件的总字符数
没问题,要实现所有文本文件字符数的汇总统计,只需要做几个简单的修改就行。我帮你调整了代码,既能保留单个文件的字符数输出,还会在循环结束后输出总数量:
<?php // 初始化总字符数变量,初始值为0 $totalChars = 0; // 获取指定路径下的所有txt文件 $files = glob('my/files/path/*.txt', GLOB_BRACE); foreach($files as $file) { // 读取文件内容,这里把你写错的dir改成了die(应该是笔误吧😉) $str = file_get_contents($file) or die("无法读取文件: {$file}"); // 计算当前文件的字符数(包含空格) $numCharSpace = strlen($str); // 输出单个文件的统计结果 echo "文件 {$file} 的字符数: {$numCharSpace}<br>"; // 累加当前文件的字符数到总计数里 $totalChars += $numCharSpace; } // 循环结束后,输出汇总结果 echo "<hr>"; echo "所有文本文件的总字符数: {$totalChars}"; ?>
关键改动说明:
- 初始化总计数变量:在循环外部新增
$totalChars = 0;,用来累加所有文件的字符数。 - 循环内累加计数:每次处理完单个文件后,执行
$totalChars += $numCharSpace;,把当前文件的字符数加到总计数中。 - 修正错误处理:将原代码中的
dir改为die(应该是笔误),同时补充了文件名,方便定位读取失败的文件。 - 输出汇总结果:在循环结束后添加总字符数的输出,用
<hr>分隔单个结果和汇总结果,提升可读性。
这样运行后,就会先逐个显示每个文件的字符数,最后输出所有文件的总字符数啦~
内容的提问来源于stack exchange,提问作者Reham Fahmy
相关产品推荐
相关产品推荐

