İPUCU

PHP Hypertext Processor ile ilgili sanal yönergeler üzerinde geliştirme için tasarlanmış dil ile ilgili dökümanların paylaşım alanı.

Seçenekler

PHP File Size Calculator / Dosya Boyut Hesaplayıcı

28-02-2019 14:08
#1
oxcakmak - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
12/2018
Nereden:
Kocaeli
Yaş:
20
Mesajlar:
1.324
Teşekkür (Etti):
465
Teşekkür (Aldı):
134
Konular:
75
Ticaret:
(0) %
Kod:
function calcSize($bytes){
    $fsize = $bytes;
    switch ($bytes):
        case $bytes < 1024:
            $fsize = $bytes .' B'; break;
        case $bytes < 1048576:
            $fsize = round($bytes / 1024, 2) .' KB'; break;
        case $bytes < 1073741824:
            $fsize = round($bytes / 1048576, 2) . ' MB'; break;
        case $bytes < 1099511627776:
            $fsize = round($bytes / 1073741824, 2) . ' GB'; break;
    endswitch;
    return $fsize;
}
echo calcSize(filesize("path/to/text.txt"));
Kullanıcı İmzası

04-03-2019 23:06
#2
NightRich - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2019
Nereden:
Kocaeli
Mesajlar:
6
Teşekkür (Etti):
0
Teşekkür (Aldı):
2
Konular:
2
Ticaret:
(0) %
Bence böyle yazılırsa kod hem daha hızlı olur hem'de direk klasörün boyutu hesaplanabilir.

Kod:
function getFolderSize(string $dir) : int{
        if(is_dir($dir) or is_readable($dir)){
            $dirNameDir[] = $dir;
            $size = 0;
            do{
                $dirName = array_shift($dirNameDir);
                $folder = opendir($dirName);
                while(($file = readdir($folder)) !== false){
                    if($file !== '.' and $file !== '..' and is_readable(($new = $dirName . DIRECTORY_SEPARATOR . $file))){
                        if(is_dir($new))
                            $dirNameDir[] = $new;

                        $size += filesize($new);
                    }
                }
                closedir($folder);
            }while(count($dirNameDir) > 0);

            return $size;
        }

        return 0;
    }
Kod:
function getSymbolByQuantity(float $bytes) : string{
        $symbols = ['Bayt', 'Kilobayt', 'Megabayt', 'Gigabyte', 'Terabyte', 'PiB', 'EiB', 'ZiB', 'YiB'];
        $exp = (int)floor(log($bytes) / log(1024));
        return sprintf('%.2f ' . $symbols[$exp], ($bytes / pow(1024, floor($exp))));
    }
echo getSymbolbyQuantity(getFolderSize('filePath'));
oxcakmak Teşekkür etti.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı