我想在某个路径中计算文本文件中的所有字符,所以我写了以下代码
<?PHP
$files = glob('my/files/path/*.txt', GLOB_BRACE);
foreach($files as $file) {
$str = file_get_contents($file) or dir("can not read file");
$numCharSpace = strlen($str);
echo "Counted " .$numCharSpace. " character(s).<br>";
}
?>
假设我们在此路径中有4个文件,因此它将打印出以下内容
Counted 201 character(s).
Counted 99 character(s).
Counted 88 character(s).
Counted 112 character(s).
如何获得500 character(s)
所有内容的总和,以便打印出foreach();
循环内所有结果的计数。
答案 0 :(得分:2)
您可以使用变量求和。然后你可以使用filesize()
来获取文件的总字节数而不是加载它:
$files = glob('my/files/path/*.txt', GLOB_BRACE);
$total = 0;
foreach($files as $file) {
$numCharSpace = filesize($file);
$total += $numCharSpace ;
}
echo "Counted " .$total. " character(s).<br>";
答案 1 :(得分:2)
使用strlen
,您可以获得文件的字节数。因此,您也可以直接获取它,而无需读取文件内容。
$numberOfChars = array_sum(
array_map('filesize', glob('my/files/path/*.txt', GLOB_BRACE))
);
这样做是为了获取glob
返回的每个文件的文件大小,并使用array_sum
对它们求和。
答案 2 :(得分:1)
<?PHP
$files = glob('my/files/path/*.txt', GLOB_BRACE);
$Total = 0;
foreach($files as $file) {
$str = file_get_contents($file) or dir("can not read file");
$numCharSpace = strlen($str);
echo "Counted " .$numCharSpace. " character(s).<br>";
$Total += $numCharSpace;
}
echo "Total " .$Total. " characters.<br>";
?>
答案 3 :(得分:0)
以下代码应该有效:
$ files = glob('my / files / path / * .txt',GLOB_BRACE);
$ numCharSpace = 0;
foreach($ files as $ file){
$ str = file_get_contents($ file)或dir(“无法读取文件”);
$ numCharSpace = $ numCharSpace + strlen($ str);
}
echo“计算”。$ numCharSpace。 “character(s)。”“;