<?PHPfunction directory_size($directory){$directorysize=0;//open the directory and read its contents
if ($dh=@open($directory)){
   //iterate through each directory entry
   while($filename=readdir($dh)){
      
  //fileter out unwanted directory entries
  if ($filename !="."&& $filename !=".."){
    //file ,so  determine size and  add to total
  if (is_file($directory."/".$filename))
  $directorysize+=file_size($directory."/".$filename);
 //new directory ,so initiate recuresion .*/
 if (is_dir($directory."/".$filename))
 $directorysize+=directory_size($directory."/".$filename);
 }
  }
   }
   @closeddir($dh);
   return $directorysize;
} #end directory_size()$directory="D:\AppServ\www";
$totalsize=round((directory_size($directory)/1048576),2);
printf("directory %s: %f MB",$directory,$totalsize);
?>

解决方案 »

  1.   

    if ($dh=@open($directory))
    其实我不知道open这个函数是什么,自定义的?
      

  2.   

    什么人乱复制复制成这样了,正确的代码在下面function directory_size($directory)
    {
        $directorySize = 0;
        /* Open the directory and read its contents. */
        if ($dh = @opendir($directory)) {
            /* Iterate through each directory entry. */
            while (($filename = readdir($dh))) {
                /* Filter out some of the unwanted directory entries. */
                if ($filename != "." && $filename != "..") {
                    // File, so determine size and add to total.
                    if (is_file($directory . "/" . $filename))
                        $directorySize += filesize($directory . "/" . $filename);
                    // New directory, so initiate recursion. */
                    if (is_dir($directory . "/" . $filename))
                        $directorySize += directory_size($directory . "/" . $filename);
                }
            } #endWHILE
        } #endIF
        @closedir($dh);
        return $directorySize;
    } #end directory_size()