首页 > 开发 > PHP > 正文

php对文件夹进行相关操作(遍历、计算大小)

2024-05-04 23:40:07
字体:
来源:转载
供稿:网友
这篇文章主要介绍了php对文件夹进行相关操作,包括遍历并打印指定目录下所有文件和计算文件大小去空白,以及去重复值等,感兴趣的小伙伴们可以参考一下
 

为大家分享的第一个操作内容: 遍历并打印指定目录下所有文件
 

  1. <?php  
  2. //功能:遍历并打印指定目录下所有文件  
  3.   
  4. function scan_dir($dir_name,$dir_flag=1) {  
  5.   static $FILE_COUNT=1;        //记录文件数目 初值为1 目录名称不记  
  6.   $FILE_COUNT--;            //每调用一次scan_dir()函数自减1  
  7.   @$dir_handle=opendir($dir_name);   //抑制错误信息显示 便于自定义错误显示  
  8.   if(!$dir_handle)  
  9.   die("目录打开错误!");  
  10.   while(false!==($filename=readdir($dir_handle))) //文件名为‘0'时,readdir返回 FALSE,判断返回值是否不全等  
  11.   {                    
  12.   
  13.     $flag=$dir_flag;         //古怪的 is_dir($filename) ! $filename这个路径必须能够寻到!当$filename不存在或者不是目录时返回false  
  14.     if($filename!='.'&&$filename!='..')  
  15.     {  
  16.       $FILE_COUNT++;          //不记录当前路径和上一级路径  
  17.       while($flag>0&&--$flag)     //负数仍为真  
  18.         echo ' ';  
  19.       if(is_dir($dir_name.$filename)) //判断 是否为一个目录  
  20.       {  
  21.         echo '<strong>'."<a href=".$dir_name.$filename.">".$filename."</a></strong><br>";  
  22.         scan_dir($dir_name.$filename.'/',$dir_flag+1);   //$dir_flag标志目录树层次  
  23.       }  
  24.       else 
  25.       {  
  26.         echo "<a href=".$dir_name.$filename.">".$filename."</a><br>";  
  27.       }  
  28.     }  
  29.   }  
  30.   closedir($dir_handle);         //关闭目录句柄  
  31.   echo "文件总数:".$FILE_COUNT.'<br>';  
  32. }  
  33.   
  34. scan_dir('D:/AppServ/www/mytest/shopping/payment/');  
  35.   
  36.   
  37. /*总结: 
  38. 1,关于路径 目录的路径末尾都加上 '/' 以便后面与文件名字符串连接 形成新的 路径字符串 
  39. 2,目录遍历 这是一个关于树的问题 
  40. 3,is_dir()函数第一个参数必须是一个能够识别的PATH否则会因目录不存在而返回一个false容易误解 
  41. 得出 “这不是一个目录”的错误结论 形成逻辑上的错误 
  42. 4,注意当前路径'.'和上一级路径'..'的剔除 否则 在递归环节造成死循环 直至内存耗尽出错。 
  43. 5,dir_flag这个变量是记录树的深度 以便于目录分级分层输出                */ 
  44. /*不足 
  45. 1,输出排版不完善 
  46. 2,逻辑与表示层混乱 不分明 大忌! 
  47. 3,面向过程 
  48. */ 
?
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表