Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Festplatten-Nutzung unter PHP

Empfohlene Antworten

Veröffentlicht

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

*ggg*

suche nicht richtig benutzt :P

~ user durchgefallen ^^

HIER

kurzfassung .. nein geht nicht

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.

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 ?

Schon klar. Das war auch garnicht mein Ziel. Server ist schon okay.

Auf dem Client kannste das knicken, ja.

disk_free_space("/");

$df = disk_free_space("/");

$df2 = disk_total_space("/");

hmm..wieso will er die beiden nicht anerkennen ???

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.

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]

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.

denke mal, da mußt du die php.ini anpassen, denn nicht jedes xbeliebige php-script sollte das root-verzeichnis durchforsten dürfen.

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 ...)

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]

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.

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

wie gesagt ist ja die maximale größe 250 mb.

sprich man kann 2 ausgaben machen

a) verbrauchter speicherplatz

B) verfügbarer speicherplatz

nur wie ich das umsetzte mit filesize, etc. da brauche ich hilfe ^^

Original geschrieben von [FiSi]Neo

wie gesagt ist ja die maximale größe 250 mb.

sprich man kann 2 ausgaben machen

a) verbrauchter speicherplatz

B) 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.

-.o

meine doch, das ich gerade das net so umsetzten kann, da ich nen quelltext gebrauchen könnte ;)

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

ebenfalls getestet und funzt bei mir auch :D danke dir ;)

schade das er mit keine terrabyte anzeigt *lolz* .. is ja auch klar ^^

anzeigen schon. aber durchs runden von 250MB auf TB rundet er halt ab :)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.