遍历目录

   

老师要求我们一定要用递归,我所理解的递归就是嵌套循环,逐级判断和操作。代码如下

<?php
 $num=0;                           //用来统计子目录和文件的个数
 $dirname='F:\wamp\www\phpMyAdmin';             //定义一个变量,保存当前目录下用来遍历的一个目录名
 @$dir_handle=opendir($dirname);        //用opendir打开目录

      //将遍历的目录和文件名使用表格格式输出
 echo '<table border="0" align="center" width="600" cellspacing="0" cellpadding="0">';
 echo '<caption><h2>目录'.$dirname.'下面的内容</h2></caption>';     //输出表格标题
 echo '<tr align="left" bgcolor="#cccccc">';                        //输出表格的字段名
 echo '<th>文件名</th><th>文件大小</th><th>文件类型</th><th>修改时间</th></tr>';
 while($file=readdir($dir_handle)) {      //使用readdir循环读取目录里的内容
  $dirFile=$dirname."/".$file;       //将目录下的文件和当前目录连接起来,才能在程序中使用
  if($num++%2==0)               //隔行一种颜色,同时也将计数器num累加
   $bgcolor='#ffffff';          //单行为白色背景
  else
   $bgcolor='#cccccc';         //双行为灰色背景
  echo '<tr bgcolor='.$bgcolor.'>';             //输出行开始标记,并使用背景色
  echo '<td>'.$file.'</td>';                    //显示文件名
          echo '<td>'.filesize($dirFile).'</td>';         //显示文件大小
          echo '<td>'.filetype($dirFile).'</td>';         //显示文件类型
          echo '<td>'.date("Y/n/t",filemtime($dirFile)).'</td>';       //格式化显示文件修改时间
          echo '</tr>';
 }
 echo '</table>';                                     //关闭表格标记
 closedir($dir_handle);                               //关闭文件操作句柄

 echo '在<b>'.$dirname.'</b>目录下的子目录和文件共有<b>'.$num.'</b>个';
?>

 

我在参考书上代码的时候发现几个需要注意的地方

feof -- 测试文件指针是否到了文件结束的位置

foreach 结构,和 Perl 以及其他语言很像。这只是一种遍历数组简便方法。foreach 仅能用于数组

dirname 给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。先开始书上的代码无法正常运行,我把dirname后面的路径改成绝对路径以后,就能正常显示了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值