disk_free_space

(PHP 4 >= 4.1.0, PHP 5)

disk_free_spaceGibt verfügbaren Platz auf Dateisystem oder Partition zurück

Beschreibung

float disk_free_space ( string $directory )

Wird eine Zeichenkette, die einen Verzeichnispfad enthält übergeben, wird diese Funktion, die Anzahl verfügbarer (freier) Bytes auf dem entsprechenden Dateisystem oder der Platten-Partition zurückgeben.

Parameter-Liste

directory

Ein Verzeichnis des Dateisystemes oder der Platten-Partition.

Hinweis:

Wird ein Dateiname anstatt eines Verzeichnisses übergeben, ist das Verhalten der Funktion unspezifiziert und kann sich zwischen Betriebssystemen und PHP Versionen unerscheiden.

Rückgabewerte

Gibt der die Anzahl der freien Bytes als Gleitkommazahl (float) zurück. Im Fehlerfall wird FALSE zurückgegeben..

Beispiele

Beispiel #1 disk_free_space() Beispiel

<?php
// $df enthält die Anzahl freier Bytes auf "/"
$df disk_free_space("/");

// Unter Windows:
$df_c disk_free_space("C:");
$df_d disk_free_space("D:");
?>

Anmerkungen

Hinweis: Diese Funktion kann nicht mit entfernten Dateien arbeiten, da der Zugriff auf die Datei, die bearbeitet werden soll, über das Dateisystem des Servers möglich sein muss.

Siehe auch

  • disk_total_space() - Gibt die Gesamtgröße eines Dateisystemes oder einer Partition zurück

add a note add a note

User Contributed Notes 4 notes

up
5
wiede at gmx dot net
3 years ago
Transformation is possible WITHOUT using loops:

<?php
    $bytes
= disk_free_space(".");
   
$si_prefix = array( 'B', 'KB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB' );
   
$base = 1024;
   
$class = min((int)log($bytes , $base) , count($si_prefix) - 1);
    echo
$bytes . '<br />';
    echo
sprintf('%1.2f' , $bytes / pow($base,$class)) . ' ' . $si_prefix[$class] . '<br />';
?>
up
3
root at mantoru dot de
6 years ago
Note that disk_free_space() does an open_basedir check.
up
2
sam
5 years ago
Nice, but please be aware of the prefixes.

SI specifies a lower case 'k' as 1'000 prefix.
It doesn't make sense to use an upper case 'K' as binary prefix,
while the decimal Mega (M and following) prefixes in SI are uppercase.
Furthermore, there are REAL binary prefixes since a few years.

Do it the (newest and recommended) "IEC" way:

KB's are calculated decimal; power of 10 (1000 bytes each)
KiB's are calculated binary; power of 2 (1024 bytes each).
The same goes for MB, MiB and so on...

Feel free to read:
http://en.wikipedia.org/wiki/Binary_prefix
up
2
Nitrogen
7 years ago
Another easy way to convert bytes to human readable sizes would be this:

<?php
function HumanSize($Bytes)
{
 
$Type=array("", "kilo", "mega", "giga", "tera", "peta", "exa", "zetta", "yotta");
 
$Index=0;
  while(
$Bytes>=1024)
  {
   
$Bytes/=1024;
   
$Index++;
  }
  return(
"".$Bytes." ".$Type[$Index]."bytes");
}
?>

It simply takes the $Bytes and divides it by 1024 bytes untill it's no longer over or equal to 1024, meanwhile it increases the $Index to allocate which suffix belongs to the return (adding 'bytes' to the end to save some space).
You can easily modify it so it's shorter, but I made it so it's more clearer.

Nitrogen.
To Top