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 中国語 Web サイトの他の関連記事を参照してください。