Veröffentlicht 26. August 200322 j Hi @ all, ich hab schon hier im Forum gesucht, bin nur leider nicht fündig geworden. Weiß jemand, ob und wie es möglich ist, mit PHP die Festplattengröße und die Nutzung herauszufinden? Oder geht das vielleicht mit JS o.ä.? Schonmal vielen Dank für die Hilfe. Gruß Tobi
26. August 200322 j *ggg* suche nicht richtig benutzt ~ user durchgefallen ^^ HIER kurzfassung .. nein geht nicht
26. August 200322 j Das Ding hab ich auch gefunden...aber ich habe gerade den Gegenbeweis gefunden! Es geht doch: <?php $df = disk_free_space("/"); for($i=0;$i<3;$i++){ $df=$df/1024; //In GB gewandelt } $df2 = disk_total_space("/"); for($i=0;$i<3;$i++){ $df2=$df2/1024; //In GB gewandelt } echo "Freier Speicherplatz:".$df." GByte<br>"; echo "Gesamter Speicherplatz:".$df2." GByte"; ?> [/PHP] Geht ganz gut. Hehe.
26. August 200322 j omg .... das führt er aber nur aufm server aus ... berechnet das also nicht bei dem user, der auf deine page geht ... *edit* bin ich dum, oder wieso geht das bei mir net ?
26. August 200322 j Schon klar. Das war auch garnicht mein Ziel. Server ist schon okay. Auf dem Client kannste das knicken, ja.
27. August 200322 j disk_free_space("/"); $df = disk_free_space("/"); $df2 = disk_total_space("/"); hmm..wieso will er die beiden nicht anerkennen ???
27. August 200322 j Ich wage mal einen Schuss ins blaue: Hast du das vielleicht auf einer Windows-Kiste probiert? Irgendwie habe ich di Vermutung das der Code nur auf Linux läuft.
27. August 200322 j Nein der Webserver läuft mit Linux .... www.final-net.de/test.php .... gibt mir halt die fehlermeldung aus .. Warning: disk_free_space(): open_basedir restriction in effect. File(/) is not within the allowed path(s): (/home2/belbidi:/tmp) in /home2/belbidi/public_html/test.php on line 2 Warning: disk_total_space(): open_basedir restriction in effect. File(/) is not within the allowed path(s): (/home2/belbidi:/tmp) in /home2/belbidi/public_html/test.php on line 6[/PHP]
27. August 200322 j Original geschrieben von [FiSi]Neo Nein der Webserver läuft mit Linux .... www.final-net.de/test.php .... gibt mir halt die fehlermeldung aus .. Warning: disk_free_space(): open_basedir restriction in effect. File(/) is not within the allowed path(s): (/home2/belbidi:/tmp) in /home2/belbidi/public_html/test.php on line 2 Warning: disk_total_space(): open_basedir restriction in effect. File(/) is not within the allowed path(s): (/home2/belbidi:/tmp) in /home2/belbidi/public_html/test.php on line 6[/PHP] [/b] ein ":" im pfad? oder dein script hat keine berechtigung.
27. August 200322 j denke mal, da mußt du die php.ini anpassen, denn nicht jedes xbeliebige php-script sollte das root-verzeichnis durchforsten dürfen.
27. August 200322 j ok, nun klappt es, musste nur ein klein wenig was ändern <?php $df = disk_free_space("../"); for($i=0;$i<3;$i++){ $df=$df/1024; //In GB gewandelt } $df2 = disk_total_space("../"); for($i=0;$i<3;$i++){ $df2=$df2/1024; //In GB gewandelt } echo "Freier Speicherplatz:".$df." GByte<br>"; echo "Gesamter Speicherplatz:".$df2." GByte"; ?> [/PHP] nur wie formatiere ich die Ausgabe auf 2 Stellen nach dem komma? (bin auf Arbeit, habe mein Büchlein nicht zur Hand ...)
27. August 200322 j PHP handbuch sagt: echo round(3.4); // 3 echo round(3.5); // 4 echo round(3.6); // 4 echo round(3.6, 0); // 4 echo round(1.95583, 2); // 1.96 echo round(1241757, -3); // 1242000 [/PHP]
27. August 200322 j Danke, funktioniert jetzt ... doch eine frage habe ich noch dazu: das script ließt jetzt die ganze HDD des Servers aus. Da meine Platz auf diesem Server aber nur 250 MB entspricht, möchte ich, das er meinen Ordner nur anzeigt, ist dies möglich ? Mit dem script aus dem Link den ich gepostet habe, berechnet er nur alle Files zusamm, die sich in dem gleichem Ordner befinden.
28. August 200322 j Original geschrieben von [FiSi]Neo Danke, funktioniert jetzt ... doch eine frage habe ich noch dazu: das script ließt jetzt die ganze HDD des Servers aus. Da meine Platz auf diesem Server aber nur 250 MB entspricht, möchte ich, das er meinen Ordner nur anzeigt, ist dies möglich ? Mit dem script aus dem Link den ich gepostet habe, berechnet er nur alle Files zusamm, die sich in dem gleichem Ordner befinden. wenn du deinen script in deinen wwwroot legst und dann einfach mit einer rekursiven funktion alle dateien durchgehst und jedesma mit filesize() dann die Ergebnisse addierst, solltest du auf deinen aktuell belegten speicherplatz des wwwroots + unterverzeichnisse kommen. die maximale größe weiß ich jetzt nicht wie ich diese auslesen würde. notfalls bis jemand eine lösung findet einfach halt oben im script erstma "fest" mit reingeben: ($wwwroootMaxSize=250;) <- so mein ich das. gruß kills
28. August 200322 j wie gesagt ist ja die maximale größe 250 mb. sprich man kann 2 ausgaben machen a) verbrauchter speicherplatz verfügbarer speicherplatz nur wie ich das umsetzte mit filesize, etc. da brauche ich hilfe ^^
28. August 200322 j Original geschrieben von [FiSi]Neo wie gesagt ist ja die maximale größe 250 mb. sprich man kann 2 ausgaben machen a) verbrauchter speicherplatz verfügbarer speicherplatz nur wie ich das umsetzte mit filesize, etc. da brauche ich hilfe ^^ ich verstehe deine probleme nicht:confused: ich hab doch im vorherigen post zu beiden geschrieben wie du es realisieren kannst.
28. August 200322 j -.o meine doch, das ich gerade das net so umsetzten kann, da ich nen quelltext gebrauchen könnte
28. August 200322 j also ich habs jetzt so gelöst: $folderSize = getFolderSize("."); echo "Größe: ". formatSize($folderSize,0)." B<br>"; echo "Größe: ". formatSize($folderSize,1)." KB<br>"; echo "Größe: ". formatSize($folderSize,2)." MB<br>"; echo "Größe: ". formatSize($folderSize,3)." GB<br>"; echo "Größe: ". formatSize($folderSize,4)." TB<br>"; function formatSize( $size, $sizetype) { return round($size/(pow(1024,$sizetype)),1); } function getFolderSize($dir) { $size = 0; $handle = opendir ($dir); while (($file = readdir($handle))!== false) { if ( $file != "." && $file != "..") { if ( is_dir( $dir."/".$file)) { $size += getFolderSize($dir."/".$file); } $size += filesize($dir."/".$file); } } closedir ($handle); return $size; } [/PHP] is getestet und funzt
28. August 200322 j ebenfalls getestet und funzt bei mir auch danke dir schade das er mit keine terrabyte anzeigt *lolz* .. is ja auch klar ^^
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.