PHP遍历目录并返回统计目录大小

网络编程 2025-03-24 04:33www.168986.cn编程入门

深入PHP:遍历目录并精准统计目录大小

在Web开发和服务器管理中,有时我们需要了解特定目录的大小。本文将向你展示如何使用PHP来遍历目录并统计其大小。

我们需要定义一个目录名。在这个例子中,我们将使用"test1"作为我们要遍历的目录。

接下来,让我们定义一个函数`listdir`来遍历目录。这个函数会打开指定的目录,读取其中的每一个文件。如果文件是一个子目录,它会递归地调用自己以遍历这个子目录。如果文件不是子目录,它将输出文件的名称。这样,我们就可以在屏幕上看到目录中的所有文件和子目录。

然后,我们定义一个函数`totdir`来计算目录的总大小。这个函数与`listdir`类似,但在遇到文件时,它会使用PHP的`filesize`函数来获取文件的大小,并将其添加到总和中。如果遇到子目录,它会递归地调用自己并添加子目录的大小到总和中。这个函数返回目录的总大小。

下面是完整的PHP代码:

```php

$dirname = "test1";

// 遍历目录并输出内容

function listdir($dirname) {

$ds = opendir($dirname);

while ($file = readdir($ds)) {

$path = $dirname.'/'.$file;

if (is_dir($path)) {

echo "DIR:".$file."
";

if ($file != "." && $file != "..") {

listdir($path);

}

} else {

echo "FILE:".$file . "
";

}

}

}

// 计算目录大小

function totdir($dirname) {

static $tot = 0;

$ds = opendir($dirname);

while ($file = readdir($ds)) {

$path = $dirname.'/'.$file;

if (is_dir($path)) {

if ($file != "." && $file != "..") {

$tot += totdir($path);

}

} else {

$tot += filesize($path);

}

}

// 返回总计

return $tot;

}

// 遍历目录并输出目录大小

listdir($dirname);

echo totdir($dirname)." bytes";

?>

```

当你运行这段代码时,它将首先输出"test1"目录下的所有文件和子目录,然后输出该目录的总大小(以字节为单位)。通过这种方式,你可以轻松地了解你的服务器上的任何目录的大小。

上一篇:Node.js Windows Binary二进制文件安装方法 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by