php统计目录文件大小的函数

添加时间:17-03-20 所属分类:PHP工具与代码
  http://www.jb51.net/article/76951.htm

这个函数可以递归遍历目录中的所有文件,并计算以MB为单位的文件总大小。
[code]
<?php
#循环遍历目录中所有的文件,并统计目录和文件的大小
$dirName="phpMyAdmin";
$dir=opendir($dirName); #返回一个资源类型
while($fileName=readdir($dir)){
$file=$dirName."/".$fileName;
if($fileName!="." && $fileName!=".."){
if(is_dir($file)){
echo "<font color='red'>".$fileName."===".date("Y-m-d H:i:s",filectime($file))."==".filetype($file)."==".toSize(dirSize($file))."</font><br/>";
}
else{
echo "<font color='green'>".$fileName."=====".date("Y-m-d H:i:s",filectime($file))."====".filetype($file)."====".toSize(filesize($file))."</font><br/>";
}
}
}
closedir($dir);

#把文件或目录的大小转化为容易读的方式
function toSize($size){
$dw; #指定文件或目录统计的单位方式
if($size>pow(2,30)){
$dw="GB";
$size=round($size/pow(2,30),2);
}
else if($size>pow(2,20)){
$dw="MB";
$size=round($size/pow(2,20),2);
}
else if($size>pow(2,10)){
$dw="KB";
$size=round($size/pow(2,10),2);
}
else
{
$dw="bytes";
}
return $size.$dw;
}

#利用递归的方式统计目录的大小
function dirSize($dirName){
$dirsize=0;
$dir=opendir($dirName);
while($fileName=readdir($dir)){
$file=$dirName."/".$fileName;
if($fileName!="." && $fileName!=".."){ //一定要进行判断,否则会出现错误的
if(is_dir($file)){
$dirsize+=dirSize($file);
}
else{
$dirsize+=filesize($file);
}
}
}
closedir($dir);
return $dirsize;
}
?>[/code]

前篇:php递归统计目录下指定扩展名文件个数 后篇:PHP正则表达式参数 /i,/g,/ig,/gi,/m的区别...
发表我的评论


推荐文章   天上人间动漫网域名被盗及拿回始末(GoD...   “傻”老太丁瑞云:一句承诺 二十六年无...   她是前世界冠军 嘲笑中让26个残障孩子创...   他是耶鲁高材生,却拿千元月薪 在小山村...   济南八旬夫妻携手半世纪:精心经营每个...
随机文章   php截取指定字符之间内容的类与实例(含...   国外网页设计网站建设论坛   IBM的PHP教程文章   PHP在线远程下载   PHP实现网页截图功能
广告

其他推荐

因为本站所有内容均转载自其它媒体,本意为公众提供免费服务,但并不代表本网赞同其观点,也不能对其真实性验证负责,如稿件版权单位或个人不想在本网发布,请与我联系,本人会立即将其撤除,谢谢.联系方式:atseashawk@163.com QQ:99289555