当前位置:首页 > PHP教程 > php文件操作 > 列表

PHP文件与目录操作示例解析

发布:smiling 来源: PHP粉丝网  添加日期:2018-06-19 10:44:47 浏览: 评论:0 

本文实例讲述了PHP文件与目录操作,分享给大家供大家参考,具体如下.

文件目录相关函数:

  1. <?php 
  2. // 输出目录中的文件 
  3. functionoutputcurfiles ($allowedtypes,$thedir){ 
  4. //首先,我们确保目录存在。 
  5. if(is_dir($thedir)){ 
  6.  //现在,我们使用scandir扫描目录中的文件。 
  7.  $scanarray= scandir ($thedir); 
  8.  //接着我们开始解析数组。 
  9.  //scandir()用“.”和“..”统计文件导航列表 
  10.  //因此作为文件,我们不应该列出他们。 
  11.  for($i= 0;$i<count($scanarray);$i++){ 
  12.   if($scanarray[$i] !="."&&$scanarray[$i] !=".."){ 
  13.    //现在,进行检查,以确保这是一个文件,而不是一个目录。 
  14.    if(is_file($thedir."/".$scanarray[$i])){ 
  15.     //现在,因为我们将允许客户端编辑这个文件, 
  16.     //我们必须检查它是否是可读和可写。 
  17.     if(is_writable($thedir."/".$scanarray[$i]) && is_readable($thedir."/".$scanarray[$i])){ 
  18.      //现在,我们检查文件类型是否存在于允许的类型数组中. 
  19.      $thepath=pathinfo($thedir."/".$scanarray[$i]); 
  20.      if(in_array ($thepath['extension'],$allowedtypes)){ 
  21.       //如果文件符合规定,我们可以继续输出. 
  22.       echo$scanarray[$i] ."<br />"
  23.      } 
  24.     } 
  25.    } 
  26.   } 
  27.  } 
  28. }else
  29.  echo"对不起,这个目录不存在."
  30. $allowedtypes=array("txt","html"); 
  31. outputcurfiles ($allowedtypes,"testfolder"); 
  32. /////////////////////////////////////////////////// 
  33. functionrecurdir ($thedir) { 
  34.   //First attempt to open the directory. 
  35.   try{ 
  36.     if($adir= opendir ($thedir)){ 
  37.       //扫描目录。 
  38.       while(false !== ($anitem= readdir ($adir))){ 
  39.         //不统计目录中包含“.”或“..”的情况 
  40.         if($anitem!="."&&$anitem!=".."){ 
  41.           //此时如果是一个目录,则缩进一点 
  42.           //再去递归 
  43.           if(is_dir($thedir."/".$anitem)){ 
  44.             ?><span style="font-weight: bold;"mce_style="font-weight: bold;"><?phpecho$anitem; ?></span><?php 
  45.             ?><div style="margin-left: 10px;"mce_style="margin-left:10px;"><?php 
  46.             recurdir ($thedir."/".$anitem); 
  47.             ?></div><?php 
  48.           }elseif(is_file($thedir."/".$anitem)){ 
  49.             //此时输出文件. 
  50.             echo$anitem."<br />"
  51.           } 
  52.         } 
  53.       } 
  54.     }else
  55.       thrownewexception ("Sorry, directory could not be openend."); 
  56.     } 
  57.   }catch(exception$e) { 
  58.     echo$e->getmessage(); 
  59.   } 
  60. echo"<br />/////////////////////////////////////<br /><br />"
  61. recurdir("testfolder"); 
  62. ////////////////////////////////////////////////////////////////// 
  63. echo"<br />/////////////////////////////////////<br /><br />"
  64. functionsortfilesbydate ($thedir){ 
  65.   //首先,需要确保目录存在。 
  66.   if(is_dir($thedir)){ 
  67.     //接着,我们使用scandir扫描此目录中的文件. 
  68.     $scanarray= scandir ($thedir); 
  69.     $finalarray=array(); 
  70.     //然后开始解析数组 
  71.     //scandir()用“.”和“..”统计文件导航列表 
  72.     //因此作为文件,我们不应该列出他们. 
  73.     for($i= 0;$i<count($scanarray);$i++){ 
  74.       if($scanarray[$i] !="."&&$scanarray[$i] !=".."){ 
  75.         //现在,我们检查,以确保这是一个文件,而不是一个目录. 
  76.         if(is_file($thedir."/".$scanarray[$i])){ 
  77.           //现在需要做的是循环数据到一个关联数组. 
  78.           $finalarray[$thedir."/".$scanarray[$i]] =filemtime($thedir."/".$scanarray[$i]); 
  79.         } 
  80.       } 
  81.     } 
  82.     //至此,我们已经遍历了整个数组,现在需要做的只是asort()它。 
  83.     asort ($finalarray); 
  84.     return($finalarray); 
  85.   }else
  86.     echo"对不起,这个目录不存在."
  87.   } //phpfensi.com 
  88. //然后,我们将函数指向我们需要查看的目录. 
  89. $sortedarray= sortfilesbydate ("testfolder"); 
  90. //至此,就可以按照如下形式输出: 
  91. while($element= each ($sortedarray)){ 
  92.   echo"File: ".$element['key'] ." was last modified: ".date("F j, Y h:i:s",$element['value']) ."<br />"
  93. ?> 

Tags: 示例 文件 目录

分享到: