| 
 
| PHP计算文件夹(目录)占用的空间大小没有现成的函数,只能自己遍历目录,然后把所有文件的大小加起来。 以下是本站原创的一个PHP计算目录大小的函数,具体细节请看函数的参数说明。
 它可以用来计算一个文件夹占据了多少字节的磁盘空间,支持子目录递归统计,用来计算文件夹及子文件夹的文件总大。
 请下载附件查看,避免直接复制以下代码导致代码被意外修改。
 <?php
 /*
 * 获取目录大小,单位为字节(B)
 * @author www.51-n.com
 * @param string $path 目录路径,可以是相对路径,也可以是绝对路径,留空('')则取当前路径
 * @param boolean $recursive 是否递归遍历子目录,默认为是
 * @return integer $size 目录中所有文件占据的字节数,如果目录不存在或无法读取则返回-1
 */
 function dirSize($path='',$recursive=true){
 $size = 0;
 $path = empty($path)?'.':$path;
 $path = str_replace('\\','/',$path);
 $path = rtrim($path,'/').'/';
 $recursive = $recursive?true:false;
 $function = __FUNCTION__;
 if(!is_dir($path)||!is_readable($path)){
 return -1;
 }else{
 if($handler = opendir($path)){
 while(false!==($file=readdir($handler))){
 if($file!='.'&&$file!='..'){
 $filepath = $path.$file;
 if(is_dir($filepath)){
 if($recursive){
 $size += $function($filepath);
 }
 }else{
 $size += filesize($filepath);
 }
 }
 }
 closedir($handler);
 }
 }
 return $size;
 }
 //以下是一个实例
 $dir = 'F:\Web\www';//换成你自己的目录
 $size = dirSize($dir,false);
 $sizeRecursive = dirSize($dir);
 if($size>=0){
 echo $dir.'的总容量为'.$sizeRecursive.'字节'.'不包含子目录及文件的容量为'.$size.'字节';
 }else{
 echo '目录'.$dir.'不存在或无法访问';
 }
 
 
 | 
 
×本帖子中包含更多资源您需要 登录 才可以下载或查看,没有账号?新建账号  |