或许指定的一个文件的全部文件的累计大小。
<?php
function getDirSize($dir) {
$handle = opendir ( $dir );
while ( false !== ($FolderOrFile = readdir ( $handle )) ) {
if ($FolderOrFile != "." && $FolderOrFile != "..") {
if (is_dir ( "$dir/$FolderOrFile" )) {
$sizeResult += getDirSize ( "$dir/$FolderOrFile" );
} else {
$sizeResult += filesize ( "$dir/$FolderOrFile" );
}
}
}
closedir ( $handle );
return $sizeResult;
}
// 单位自动转换函数
function getRealSize($size) {
$kb = 1024; // Kilobyte
$mb = 1024 * $kb; // Megabyte
$gb = 1024 * $mb; // Gigabyte
$tb = 1024 * $gb; // Terabyte
if ($size < $kb) {
return $size . " B";
} else if ($size < $mb) {
return round ( $size / $kb, 2 ) . " KB";
} else if ($size < $gb) {
return round ( $size / $mb, 2 ) . " MB";
} else if ($size < $tb) {
return round ( $size / $gb, 2 ) . " GB";
} else {
return round ( $size / $tb, 2 ) . " TB";
}
}
?>
使用:
<?php echo getRealSize ( getDirSize ( dirname ( $_SERVER ['SCRIPT_FILENAME'] ) ) ); ?>