• 技术文章 >后端开发 >php教程

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

    墨辰丷墨辰丷2018-06-05 15:58:37原创859
    本篇文章主要介绍php计算目录文件大小的函数,感兴趣的朋友参考下,希望对大家有所帮助。

    代码如下:

    <? 
    /** 
     统计目录文件大小的函数 
     @author xfcode 
    */ 
     function dirsize($dir) 
     { 
       @$dh = opendir($dir); 
       $size = 0; 
       while ($file = @readdir($dh)) 
      { 
        if ($file != "." and $file != "..") 
       { 
         $path = $dir."/".$file; 
          if (is_dir($path)) 
         { 
           $size += dirsize($path); 
          } 
         elseif (is_file($path)) 
         { 
           $size += filesize($path); 
          } 
        } 
       } 
      @closedir($dh); 
      return $size; 
     } 
    //function end 
     
    //eg: 
     $dir_path = "./my_files"; 
     $dir_size = dirsize($dir_path); 
     $dir_size = $dir_size/1024/1024; 
     echo $dir_size."MB"; 
     ?>

    这个函数可以递归遍历目录中的所有文件,并计算以MB为单位的文件总大小。

    下面我们再来看个代码

    <?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;
     }
    ?>

    总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

    相关推荐:

    PHP 自动加载的简单实现方法

    PHP实现读取大文件并显示的实例

    PHP Ajax实现无刷新附件上传的方法

    php入门到就业线上直播课:查看学习

    以上就是php计算目录文件大小的函数的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    上一篇:PHP导出word的方法 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• PHP底层的运行机制与原理_PHP教程• 说一说PHP程序开发中的模板选择_PHP• 程序修改有关问题• js表单提交解决方法• php 适用方法积累
    1/1

    PHP中文网