如何使用 PHP 确定目录大小
计算目录(包括其子目录)的大小可能是管理文件的一项重要任务存储和性能。本文演示了如何使用优化方法在 PHP 中实现此目的。
现有方法
提供的 PHP 代码片段计算目录的大小,如下所示:
function foldersize($path) { $total_size = 0; $files = scandir($path); foreach($files as $t) { if (is_dir(rtrim($path, '/') . '/' . $t)) { if ($t<>"." && $t<>"..") { $size = foldersize(rtrim($path, '/') . '/' . $t); $total_size += $size; } } else { $size = filesize(rtrim($path, '/') . '/' . $t); $total_size += $size; } } return $total_size; }
优化
原代码展示由于不必要的递归函数调用和冗余文件存在检查而导致的性能问题。下面的优化函数解决了这些问题:
function GetDirectorySize($path){ $bytestotal = 0; $path = realpath($path); if($path!==false && $path!='' && file_exists($path)){ foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS)) as $object){ $bytestotal += $object->getSize(); } } return $bytestotal; }
主要增强功能包括:
示例用法
利用优化函数:
$path = '/var/www/html/myproject'; $directorySize = GetDirectorySize($path); echo "Size of '$path': " . format_bytes($directorySize);
此代码确定指定目录的大小并以人类可读的格式显示结果。
以上是如何在 PHP 中有效计算目录的大小?的详细内容。更多信息请关注PHP中文网其他相关文章!