Ich habe einen Ordner ‚Dateien‘ ok Ich möchte wissen die Summe der Größe seiner Dateienich will durch php die Summe von Dateien Größe in Ordner erhalten
Antwort
Mit DirectoryIterator und SplFileInfo
$totalSize = 0;
foreach (new DirectoryIterator('/path/to/dir') as $file) {
if ($file->isFile()) {
$totalSize += $file->getSize();
}
}
echo $totalSize;
und den Fall, dass Sie, dass einschließlich der Unterordner:
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator('/path/to/dir')
);
$totalSize = 0;
foreach ($iterator as $file) {
$totalSize += $file->getSize();
}
echo $totalSize;
A Und Sie können $totalSize
über den Code laufen lassen, den wir Ihnen format 6000 to 6k für eine menschlichere lesbare Ausgabe gegeben haben. Du müsstest alle 1000er auf 1024 ändern.
awasome antwort :) mit dies ist so einfach. Danke für die Antwort – Blueblazer172
echo array_sum(array_map('filesize', glob('*')));
Ich mag diese Version –
, die Verzeichnisse nicht ausschließt, oder? Es ist auch ineffizient. Zuerst globe du die Dateinamen, dann ersetzst du sie mit ihrer Größe und summierst sie dann. Das sind zwei zusätzliche Iterationen über das ursprüngliche Array, wenn Sie alles in einer Iteration durchführen können. – Gordon
Sie könnten auch 'GLOB_NOSORT' hinzufügen, wenn Sie die Dateireihenfolge sowieso nicht interessiert. Siehe http://www.phparch.com/2010/04/28/putting-glob-to-the-test/ - das sollte dem Glob etwas mehr Geschwindigkeit verleihen. Immer noch nicht optimal. – Gordon
Nun versuchen Sie dies filesize() zu verwenden, um die Dateigröße beim Durchlaufen aller Dateien und Unterverzeichnisdateien zu berechnen.
<?php
function get_dir_size($dir_name){
$dir_size =0;
if (is_dir($dir_name)) {
if ($dh = opendir($dir_name)) {
while (($file = readdir($dh)) !== false) {
if($file !=”.” && $file != “..”){
if(is_file($dir_name.”/”.$file)){
$dir_size += filesize($dir_name.”/”.$file);
}
/* check for any new directory inside this directory */
if(is_dir($dir_name.”/”.$file)){
$dir_size += get_dir_size($dir_name.”/”.$file);
}
}
}
}
}
closedir($dh);
return $dir_size;
}
$dir_name = “directory name here”;
/* 1048576 bytes == 1MB */
$total_size= round((get_dir_size($dir_name)/1048576),2) ;
print “Directory $dir_name size : $total_size MB”;
?>
wenn Sie Zugriff auf exec Funktion haben, können Sie diesen Code verwenden:
exec("du {directory_path_you_want_see_size} -s 2>&1",$output);
echo intval($output[0]) ;
Beispiel:
exec("du /home/ -s 2>&1",$output);
echo intval($output[0]) ;
Bitte empfehlen Sie nicht die Verwendung von 'exec()', vor allem, wenn es irgendeine Art von variablen, vom Benutzer bereitgestellten Eingaben beinhaltet. Das eröffnet nur die Möglichkeit für Shell-Befehls-Injektionen und all ihre sicherheitsrelevanten Implikationen, und niemand will das wirklich. Wenn es jedoch nicht vermieden werden kann, zeigen Sie zumindest auf [escapeshellarg()] (http://php.net/manual/en/function.escapeshellarg.php) oder eine andere Möglichkeit, Benutzereingaben zu bereinigen, bevor sie an 'übergeben werden exec() '. – Striezel
- 1. Looping durch Dateien in einem Ordner
- 2. durch Ordner mit PHP-Navigation
- 3. Die Größe eines Ordners erhalten
- 4. Looping durch Dateien in einem Ordner Node.JS
- 5. Die Größe von ZipInputStream erhalten
- 6. PHP erhalten Summe mit explode-Funktion
- 7. Wie vergleiche ich die Größe von ausführbaren Dateien in VB6?
- 8. Löschen Sie Ordner und Dateien in PHP
- 9. Looping durch einen Ordner mit Dateien?
- 10. Ich will die heutige Datum erhalten, ohne Zeit
- 11. BASH Schleife durch Ordner und Dateien
- 12. ich will
- 13. Bild aus dem Ordner nach Größe erregende
- 14. verschieben hochgeladene Dateien in PHP
- 15. Größe im Speicher eines Objekts in PHP erhalten?
- 16. Summe eines Arrays in PHP
- 17. umbenennen von Dateien in einem Ordner
- 18. Wie kann ich die Größe eines Zeigers eines Segments Speicher erhalten, mallocked durch die Funktion "malloc"
- 19. Kann die Dateien in Ordner in Linode
- 20. Wie zähle ich die Summe der angegebenen Summe in $ gesamt
- 21. Daten von PHP-Variable erhalten
- 22. ich will codeigniter php fehler anstelle von 500 internen fehler
- 23. Iterieren durch Ordner für bestimmte Dateien in BASH
- 24. Wie lese ich Dateien aus dem Apache-Ordner mit PHP
- 25. Alle .php-Dateien im Ordner rekursiv finden
- 26. So erhalten Sie die Summe von zwei Kreuztabellen-Tabellen
- 27. Alle absoluten Pfade der Dateien in einem bestimmten Ordner erhalten
- 28. Wie PHP-Datei durch Doppelklick aus einem beliebigen Ordner wie HTML-Dateien in Windows XP ausführen?
- 29. Summe durch n teilbar
- 30. Schleife durch Ordner in Python und für Dateien mit Strings
prüfen Sie: http://www.phpsnaps.com/snaps/ view/sum-of-size-of-files-in-directory – nuqqsa