php Dosya boyutu hesaplama

php  ile bir klasör içindeki dosyaların boyutunu nasıl hesaplarız, ben burada bi resim klasorundeki resimleri hesapladım siz kendinize göre değiştirebilisiniz ….

Demo için tıklayın  indirmek için tıklayınız [dm]108[/dm]




$uzanti='jpg';

//uzantıyı bul
function ext($filename)  {
return strtolower(substr(strrchr($filename, '.'), 1));//nokta silinsede olurdu ama ekledim
}

function convertBytes($value)
{
if (is_numeric($value)) {
return $value;
}
else
{
$value_length = strlen($value);
$qty = substr($value, 0, $value_length - 1);
$unit = strtolower(substr($value, $value_length - 1));
switch ($unit)
{
case 'k':
$qty *= 1024;
break;
case 'm':
$qty *= 1048576;
break;
case 'g':
$qty *= 1073741824;
break;
}
return $qty;
}
}

function roundSize($filesize, $phpConfig = false)
{

if ($filesize $filesize = sprintf("%u", $filesize);
}
if ($filesize >= 1073741824) {
$filesize = round($filesize / 1073741824 * 100) / 100 . ($phpConfig ? "G" : " G" . $size_unit);
}
elseif ($filesize >= 1048576) {
$filesize = round($filesize / 1048576 * 100) / 100 . ($phpConfig ? "M" : " M" . $size_unit);
}
elseif ($filesize >= 1024) {
$filesize = round($filesize / 1024 * 100) / 100 . ($phpConfig ? "K" : " K" . $size_unit);
}
else {
$filesize = $filesize . " " . $size_unit;
}
if ($filesize == 0) {
$filesize = "-";
}
return $filesize;
}

function percent($a,$b){
$sonuc=$a/$b;
return $sonuc=round($sonuc*100);
}

function folder_($dizin,$uzanti){
if ($handle = opendir("$dizin") or die ("Dizin acilamadi!")) {

while (false !== ($file = readdir($handle))) {
$filetype = ext($file);
if(is_file($dizin."/".$file) && $filetype == "$uzanti")
{
$deger=convertBytes(filesize( $dizin.'/'.$file)) ;
$boyutlar[] =$deger;
}  } //while end
$e=array_sum($boyutlar);

$e=roundSize($e);
$dilim = explode(" ", $e);//eğer k cinsi yani kilo byat değeri gelirse onun için
$bak=$dilim[1];

if ($bak=='K'){$e='0 M';}

$e= substr($e, 0, -2);
return $e2=floor( number_format($e))+1;
closedir($handle);
}
}

$a1=folder_('../../resimler/sayfa_resimleri',$uzanti);
$a2=folder_("../../resimler/sayfa_resimleri/thumb",$uzanti);
$a3=folder_("../../resimler/sayfa_resimleri/mini",$uzanti);

$a4=folder_("../../resimler/firma_resimleri/thumb",$uzanti);
$a5=folder_("../../resimler/firma_resimleri",$uzanti);
$e2=$a1+$a2+$a3+$a4+$a5;

$total=250;//web sitemizin genel boyutu
$sisitemin_kullandigi=20;//siistem klasorleri php ve images vss ne kadar kullnıyor
$total=$total-$sisitemin_kullandigi;
$remaining=$total - $e2;
$pluspercent1=percent($remaining,$total);//toplam yüzde boş alan
//echo '
';
$pluspercent=100-percent($remaining,$total);//yüzde dolu alan
$total1=$total.'/'. $remaining;

//burada json olarak çıktı verdim
echo '{"post":[ {
"total_host":"'.$total1.'",

"pluspercent":"'.$pluspercent.'%'.'",
"result":"ok" }]}';
?>