PHP funkcija za računanje veličine foldera


Ovom funkcijom možete izračunati veličinu foldera (i svih njegovih fajlova i podfoldera), što može biti korisno recimo prilikom kontrole potršnje resursa na serveru. Veličina je data u gigabajtima.


function getDirectorySize($path)
{
  $totalsize = 0;
  $totalcount = 0;
  $dircount = 0;
  if($handle = opendir($path))
  {
	while (false !== ($file = readdir($handle)))
	{
	  $nextpath = $path . '/' . $file;
	  if($file != '.' && $file != '..' && !is_link ($nextpath))
	  {
		if(is_dir($nextpath))
		{
		  $dircount++;
		  $result = getDirectorySize($nextpath);
		  $totalsize += $result['size'];
		  $totalcount += $result['count'];
		  $dircount += $result['dircount'];
		}
		else if(is_file ($nextpath))
		{
		  $totalsize += filesize ($nextpath);
		  $totalcount++;
		}
	  }
	}
  }
  closedir($handle);
  $total['size'] = $totalsize;
  $total['count'] = $totalcount;
  $total['dircount'] = $dircount;
  
  $ret = round($totalsize/1024/1024,0);
  return $ret;
}



Ostavite komentar





Komentari posetilaca


  • Darko Petrović | 02.10.2017 15:47

    Radi, testirana je, path stavi npr ovako: getDirectorySize('../files/');

  • Popp | 02.10.2017 15:37

    Funkcija ili ne radi ili ja ne znam kako path da stavim.