FTP - Ordnergröße ermitteln?
irgendjemand
- php
0 Tom0 irgendjemand
Hi,
ich habe mir ein FTP-Script mit PHP geschrieben.
Meine Frage ist, wie kann ich die Größe eines Ordners ermitteln?
mfG irgendjemand ;)
Hello,
ich habe mir ein FTP-Script mit PHP geschrieben.
Meine Frage ist, wie kann ich die Größe eines Ordners ermitteln?
Ich befürchte, dass Du da nur mit ftp_rawlist()
http://www.php.net/manual/en/function.ftp-rawlist.php
weiter kommst.
Liste auslesen und diese dann parsen und addieren.
Liebe Grüße aus Syburg
Tom vom Berg
Hi,
Problem gelöst!
ich hab mir ein Script "gebastelt" welches jeden Ordner öffnet, die Größe der Dateien ausließt und dann alles addiert.
$ftp = ftp_connect($host, $port);
$login = ftp_login($ftp, $user, $pass);
$rawlist = ftp_rawlist($ftp, $dir);
$dir = ftp_pwd($ftp);
$webspace = array();
$ordner = array();
#im root-Verzeichnis die Dateien und Ordner trennen und die Dateigrößen speichern
foreach($rawlist as $data) {
$data = preg_split ('°[\s]+°', $data);
if(substr($data['0'], 0, 1) == "d") {
$ordner[] = $data['8'];
}
$webspace[] = $data['4'];
}
#und nun das Gleiche für die ganzen Unterordner
for($i = 0; $i < count($ordner); $i++) {
$ftp2 = ftp_connect($host, $port);
$login2 = ftp_login($ftp2, $user, $pass);
ftp_chdir($ftp2, $ordner[$i%count($ordner)]);
$dir2 = ftp_pwd($ftp2);
$rawlist2 = ftp_rawlist($ftp2, $dir2);
foreach($rawlist2 as $data) {
$data = preg_split ('°[\s]+°', $data);
$webspace[] = $data['4'];
if(substr($data['0'], 0, 1) == "d") {
$ordner[] = $ordner[$i%count($ordner)]."/".$data['8'];
}
}
ftp_chdir($ftp2, "/");
ftp_close($ftp2);
}
ftp_close($ftp);
echo array_sum($webspace);
Ich möchte nähmlich das man auf meinen Server 1GB webspace zur Verfügung hat.
Daher muss errechnet werden wie viel schon voll ist^^.
Hi,
Ich möchte nähmlich das man auf meinen Server 1GB webspace zur Verfügung hat.
Heisst das, du betreibst selbst eine Art Hosting-Dienst, auf dem die Nutzer Accounts bekommen>
Daher muss errechnet werden wie viel schon voll ist^^.
Dann solltest du dich mit Disk Quotas beschäftigen, anstatt selbst solche halbgaren "Lösungen" dafür zu basteln.
MfG ChrisB
Hi,
Heisst das, du betreibst selbst eine Art Hosting-Dienst, auf dem die Nutzer Accounts bekommen
Ja, aber es ist noch in Arbeit^^.
Da hab ich doch gleich noch eine Frage ;)
Wie kann ich per PHP einen User beim FileZilla-Server anlegen?
Dann solltest du dich mit Disk Quotas beschäftigen, anstatt selbst solche halbgaren "Lösungen" dafür zu basteln.
Was ist dieses Disk Quotas?
mfG
Hello,
ftp_rawlist() arbeitet auf Wunsch auch rekursiv.
Schau nochmal in die Doku http://www.php.net/manual/en/function.ftp-rawlist.php
Liebe Grüße aus Syburg
Tom vom Berg