如何使用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中文網其他相關文章!