专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

使用php递归计算目录大小

  统计一个目录大小,因为不知道目录中子目录的深度,所以for循环很难实现,但是用递归调用很容易实现,只要统计出一个目录中所有文件的大小,那么每一次调用就可以了,随便建了个目录,建立一些文件,方法代码如下:

 function dirsize($dirname){
     static $sum=0;    //静态变量,防止每次递归置零
     $handle=($dirname);
     while(($item=($handle))!==false){
         if($item!='.'&&$item!='..'){
             if(($dirname.'/'.$item)){
                 $sum+=($dirname.'/'.$item);
             }
             if(($dirname.'/'.$item)){
                 //递归操作
                 $func=__FUNCTION__;
                 $func($dirname.'/'.$item);
                 //dirsize($dirname.'/'.$item);
             }
         }
     }
     ($handle);
     return $sum;
 }
 $filename='ssh';
 $arr=dirsize($filename);
 echo ($arr/1024).'KB';

这样就可以统计目录大小了,定义保存目录大小变量的时候要定义静态的变量或者全局变量,整个程序运行过程中一直存在,防止每次递归置零

注意目录’.’和’..’的处理,如果使用Linux那就再熟悉不过了

重点部分就几句代码,判断是文件还是目录,是文件进行累加计算,否则递归调用。

文章永久链接:https://tech.souyunku.com/47752

未经允许不得转载:搜云库技术团队 » 使用php递归计算目录大小

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们