So bestimmen Sie die Verzeichnisgröße mit PHP
Das Berechnen der Größe eines Verzeichnisses, einschließlich seiner Unterverzeichnisse, kann eine wichtige Aufgabe für die Dateiverwaltung sein Speicher und Leistung. Dieser Artikel zeigt, wie Sie dies in PHP mithilfe eines optimierten Ansatzes erreichen können.
Vorhandene Methode
Das bereitgestellte PHP-Code-Snippet berechnet die Größe eines Verzeichnisses wie folgt:
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; }
Optimierung
Der ursprüngliche Code wies Leistungsprobleme auf zu unnötigen rekursiven Funktionsaufrufen und Überprüfungen redundanter Dateien. Die folgende optimierte Funktion geht auf diese Bedenken ein:
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; }
Zu den wichtigsten Verbesserungen gehören:
Beispielverwendung
Nutzung die optimierte Funktion:
$path = '/var/www/html/myproject'; $directorySize = GetDirectorySize($path); echo "Size of '$path': " . format_bytes($directorySize);
Dieser Code bestimmt die Größe der angegebenen Verzeichnis und zeigt das Ergebnis in einem für Menschen lesbaren Format an.
Das obige ist der detaillierte Inhalt vonWie berechnet man effizient die Größe eines Verzeichnisses in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!