Hallo ich möchte in php ein Ordner berechen wie viel speicher er größ ist kann mir jemand helfen
Das script soll Dieses Verzeichnis messen /var/www/Vhost/galgenjunge/
Bitte um schnelle Anwort
ich meine, das macht diskfreespace(), ist aber auf bplaced deaktiviert
siehe:
Ansonsten schau dir nochmal stat() an, ist jetzt aber echt nur grob gepeilt
xD SChaut das verzeichnis aus wie auf bplaced.net xD
Damit kann ich messen wie viel Ich insgemsamt verwende ich muss aber nur wissen wie viel ein ordner verwendet
Edit Zeigt An Wie viel speicher ich frei habe xD
Naja, net wirklich…
Dann sollte diskfreespace ja was für dich sein
Geht auch nicht Das habe ich schon mit allen 3 Befhlen probiert
Muss noch was anderes geben
es Zeigt Nur an wie viel noch frei ist
de.php.net/manual/de/function.di … -space.php
Was hälst du davon?
Bist du dir sicher, das die Funktion auf deinem Host funktioniert (frei ist)?
Mache es Anders
<?php $dir = "/var/www/Vhost/galgenjunge"; $do = opendir($dir); $size = 0; while($file = readdir($do)){ $size += filesize($dir."/".$file); } closedir($do); echo round($size/1024,2)." KB"; ?>Muss es nur noch schaffen in MB um zurechen Dan habe ich mein script
Jetzt ermittelst du den belegten Speciherplatz. Das geht schneller mit:
$dir = ""; //Verzeichnispfad
function disk_used_space($dirpath){
if(!isset($dirpath) || empty($dirpath))
$dirpath = basename(__FILE__);
$used_space = disk_total_space($dirpath) - disk_free_space($dirpath);
return (INT) $used_space;
}
$belegt = disk_used_space($dir);
Nein ich ermittel die Ordner größe xD
Ja, du ermittelst die Größe des Ordners. Unter Ordnergröße verstehe ich auch dies.
Ist übrigens gleich mit belegtem Speicherplatz des Verzeicnisses
Wenn du aber fragst, “wie viel Speicher er groß ist”, meinst das, wieviel in den Ordner reinpassen würde.
Get wie gesagt auch schneller mit der geposteten Funktion
Naja Ich will Wissen Wie Groß der ordner ist also wie viel Der Speicher nimmt
genau das ermittelt die Funktion, die ich gepostet habe doch. allerdings ohne erst zeit und rechenaufwändig jede Datei lesen zu müssen
Sie zeigt an wie viel speicher auf der ganzen fesplate genutzt wird
Dies spuct das script aus
464306176
Naja, du solltest Verzeichnisspfad schon anpassen …
$dir = "/var/www/Vhost/galgenjunge"; //Verzeichnispfad // abgepasst ;-)
function disk_used_space($dirpath){
if(!isset($dirpath) || empty($dirpath))
$dirpath = basename(__FILE__);
$used_space = disk_total_space($dirpath) - disk_free_space($dirpath);
return (INT) $used_space;
}
$belegt = disk_used_space($dir);
Doof Bin ich nid ich habe das Angepasst
Dann müsste es eigentlich das selbe ergebnis sein, wie bei denem script, nur eben noch nichtr gerundet auf KBs
Ausgabe 464314368
Bedeutet, das du ca. 464MB in dem Verzeichnis belegt hast. Bei einem Server wird das kaum für die gnaze Festplatte gelten
DAs lutige ist das Das verzeichnis Noch nich mal 1mb groß ist
class File {
protected $directorys = array();
protected static $filesize = NULL;
public function getUsageMemory($path = "./") {
$dir = opendir($path);
while($file = readdir($dir)) {
if($file != '.' && $file != '..') {
if(is_dir($path.'/'.$file)) {
$File = new File;
$this->directorys[$file] = $File->getFilesize($path.'/'.$file);
} else {
self::$filesize += filesize($path.'/'.$file);
}
}
}
closedir($dir);
return self::$filesize;
}
}
versuch es mal damit, übergib der funktion einfach einen relativen oder absoluten pfad bzw. nix wenn du das verzeichnis scannen willst in dem das script ausgeführt wird. Die Funktion Scannt auch unterordner mit, aber achtung bei sehr vielen Dateien wird die Funktion langsam.