PHP ile Dosya Boyutları

PHP’de filesize() fonksiyonu ile dosyanın boyutunu Byte cinsinden alabilirsiniz. Şimdi o fonksiyon ile dosya yönetimlerinde gördüğümüz işlemlere biraz değilenlim.


İlk önce tek dosyanın boyutunu nasıl alırız ona bakalım.

$dosya = “ahmetpasha.txt”;
$boyut = filesize($dosya);
echo “$dosya adlı dosyanın boyutu $boyut byte.”;

bu kod ile ahmetpasha.txt adlı dosyanın boyutunu almış olduk.
Şimdi yine bu fonksiyonu taban alarak klasördeki tüm dosyaların boyutlarını alalım.

$path = “/home/haymac/www”;
$dh = opendir($path);
$i=0;
clearstatcache();
while (($file = readdir($dh)) !== false) {
if($file != “.” && $file != “..”) {
$i = $i+filesize(”$path/$file”);
}
}
closedir($dh);
echo “Toplam boyut $i”;

İlk önce dizini açtık, okuduk while yardımı ile sayıları topladık ve işlem tamam :) . Bu şekilde toplam boyutu aldık. Ama bu boyut bize Byte olarak geldi bunu birde MB olarak alalım. Şimdi bu işlem için fonksiyon gerekli.

function size_readable($size, $unit = null, $retstring = null, $si = true)
{
// Units
if ($si === true) {
$sizes = array(’B', ‘kB’, ‘MB’, ‘GB’, ‘TB’, ‘PB’);
$mod = 1000;
} else {
$sizes = array(’B', ‘KiB’, ‘MiB’, ‘GiB’, ‘TiB’, ‘PiB’);
$mod = 1024;
}
$ii = count($sizes) – 1;

// Max unit
$unit = array_search((string) $unit, $sizes);
if ($unit === null || $unit === false) {
$unit = $ii;
}

// Return string
if ($retstring === null) {
$retstring = ‘%01.2f %s’;
}

// Loop
$i = 0;
while ($unit != $i && $size >= 1024 && $i < $ii) {
$size /= $mod;
$i++;
}
return sprintf($retstring, $size, $sizes[$i]);
}

Fonksiyonun kullanımına gelelim. Önceki kodda $i ile aldığımız toplam boyutu burda size_readable($i) olarak okunabilir şekilde alabiliriz.
Anlatım Burda

1 Response to “PHP ile Dosya Boyutları”


  1. 1 Ahm

    Ben 1 yıldan fazla süredir Blue Ice temasını
    kullanıyorum Firefox’ta gayet hoş geliyor
    gözüme hatta Firefox standartı buymuş gibi
    hissediyorum. :D

Leave a Reply




Ahm is Digg proof thanks to caching by WP Super Cache