<?php
 
function dirsize($folder)
{
  if( !is_dir($folder) ): return -1; endif;
 
  $handle = opendir($folder); $dirsize = 0;
  $folder = preg_replace('/(\/|\\\\)+$/', '', $folder).'/';
 
  while(($currentItem = readdir($handle)) !== false)
  {
    if(( $currentItem != '.' ) && ( $currentItem != '..' ))
    {
      $function = is_dir($folder.$currentItem) ? 'dirsize' : 'filesize';
      $dirsize += call_user_func($function, $folder.$currentItem);
    }
  }
 
  return $dirsize;
}
 
?>