如何在foreach循环中创建文件时统计文件的大小

时间:2016-04-21 20:33:38

标签: php count

我正在使用用户可以上传文件的文件夹。这些文件以名称和大小输出。

$dir = "users/$UserName";
$files = scandir($dir);

foreach ($files as $file) {
if ($file != '.' && $file != '..') {
echo sizeFormat(filesize($dir . '/' . $file));
}

所以我的输出看起来像这样:

koala.jpg => 600KB

jellyfish.jpg => 600KB

tulips.jpg => 500KB

我如何统计所有尺码?

类似于:对所有文件进行大小调整:1700kB

3 个答案:

答案 0 :(得分:1)

像这样:

$dir = "users/$UserName";
$files = scandir($dir);
$total = 0;

foreach ($files as $file) {
    if ($file != '.' && $file != '..') {
        $total += filesize($dir . '/' . $file);
        echo sizeFormat(filesize($dir . '/' . $file));
    }
}
echo $total;

答案 1 :(得分:0)

嗯......只是将大小加在一起!?

假设你的代码有效,这里有一个模型如何做到:

$total = 0;
foreach ($files as $file) {
    if ($file != '.' && $file != '..') {
        $current = filesize($dir . '/' . $file);
        $total += $current;
        echo sizeFormat($current);
    } 
}
echo "total: ".sizeFormat($total);

答案 2 :(得分:0)

试试这个(假设你在某处有sizeFormat函数)

$dir = "users/$UserName";
$files = scandir($dir);
$size = 0;

foreach ($files as $file) {
    if ($file != '.' && $file != '..') {
        $size += filesize($dir . '/' . $file);
    }
}

echo sizeFormat($size);