PHP文件与目录操作示例


Posted in PHP onDecember 24, 2016

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

文件目录相关函数

<?php
// 输出目录中的文件
function outputcurfiles ($allowedtypes, $thedir){
//首先,我们确保目录存在。
if (is_dir ($thedir)){
 //现在,我们使用scandir扫描目录中的文件。
 $scanarray = scandir ($thedir);
 //接着我们开始解析数组。
 //scandir()用“.”和“..”统计文件导航列表
 //因此作为文件,我们不应该列出他们。
 for ($i = 0; $i < count ($scanarray); $i++){
  if ($scanarray[$i] != "." && $scanarray[$i] != ".."){
   //现在,进行检查,以确保这是一个文件,而不是一个目录。
   if (is_file ($thedir . "/" . $scanarray[$i])){
    //现在,因为我们将允许客户端编辑这个文件,
    //我们必须检查它是否是可读和可写。
    if (is_writable ($thedir. "/" . $scanarray[$i]) &&  is_readable($thedir . "/" . $scanarray[$i])){
     //现在,我们检查文件类型是否存在于允许的类型数组中.
     $thepath = pathinfo ($thedir . "/" . $scanarray[$i]);
     if (in_array ($thepath['extension'], $allowedtypes)){
      //如果文件符合规定,我们可以继续输出.
      echo $scanarray[$i] . "<br />";
     }
    }
   }
  }
 }
} else {
 echo "对不起,这个目录不存在.";
}
}
$allowedtypes = array ("txt","html");
outputcurfiles ($allowedtypes, "testfolder");
///////////////////////////////////////////////////
function recurdir ($thedir) {
  //First attempt to open the directory.
  try {
    if ($adir = opendir ($thedir)){
      //扫描目录。
      while (false !== ($anitem = readdir ($adir))){
        //不统计目录中包含“.”或“..”的情况
        if ($anitem != "." && $anitem != ".."){
          //此时如果是一个目录,则缩进一点
          //再去递归
          if (is_dir ($thedir . "/" . $anitem)){
            ?><span style="font-weight: bold;" mce_style="font-weight: bold;"><?php echo $anitem; ?></span><?php
            ?><div style="margin-left: 10px;" mce_style="margin-left:10px;"><?php
            recurdir ($thedir . "/" . $anitem );
            ?></div><?php
          } elseif (is_file ($thedir . "/" . $anitem)){
            //此时输出文件.
            echo $anitem . "<br />";
          }
        }
      }
    } else {
      throw new exception ("Sorry, directory could not be openend.");
    }
  } catch (exception $e) {
    echo $e->getmessage();
  }
}
echo "<br />/////////////////////////////////////<br /><br />";
recurdir("testfolder");
//////////////////////////////////////////////////////////////////
echo "<br />/////////////////////////////////////<br /><br />";
function sortfilesbydate ($thedir){
  //首先,需要确保目录存在。
  if (is_dir ($thedir)){
    //接着,我们使用scandir扫描此目录中的文件.
    $scanarray = scandir ($thedir);
    $finalarray = array();
    //然后开始解析数组
    //scandir()用“.”和“..”统计文件导航列表
    //因此作为文件,我们不应该列出他们.
    for ($i = 0; $i < count ($scanarray); $i++){
      if ($scanarray[$i] != "." && $scanarray[$i] != ".."){
        //现在,我们检查,以确保这是一个文件,而不是一个目录.
        if (is_file ($thedir . "/" . $scanarray[$i])){
          //现在需要做的是循环数据到一个关联数组.
          $finalarray[$thedir . "/" . $scanarray[$i]] = filemtime ($thedir . "/" . $scanarray[$i]);
        }
      }
    }
    //至此,我们已经遍历了整个数组,现在需要做的只是asort()它。
    asort ($finalarray);
    return ($finalarray);
  } else {
    echo "对不起,这个目录不存在.";
  }
}
//然后,我们将函数指向我们需要查看的目录.
$sortedarray = sortfilesbydate ("testfolder");
//至此,就可以按照如下形式输出:
while ($element = each ($sortedarray)){
  echo "File: " . $element['key'] . " was last modified: " . date ("F j, Y h:i:s", $element['value']) . "<br />";
}
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php桌面中心(四) 数据显示
Mar 11 PHP
用PHP写的MySQL数据库用户认证系统代码
Mar 22 PHP
PHP页面间传递参数实例代码
Jun 05 PHP
用PHP调用Oracle存储过程的方法
Sep 12 PHP
phplock(php进程锁) v1.0 beta1
Nov 24 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 PHP
PHP内核探索之解释器的执行过程
Dec 22 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
Nov 03 PHP
Zend Framework入门教程之Zend_View组件用法示例
Dec 09 PHP
PHP ADODB实现事务处理功能示例
May 25 PHP
YII框架页面缓存操作示例
Apr 29 PHP
laravel数据库查询结果自动转数组修改实例
Feb 27 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
Dec 24 #PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
Dec 24 #PHP
PHP会话控制实例分析
Dec 24 #PHP
PHP面向对象程序设计方法实例详解
Dec 24 #PHP
PHP数据库处理封装类实例
Dec 24 #PHP
如何判断php mysqli扩展类是否开启
Dec 24 #PHP
Thinkphp框架中D方法与M方法的区别
Dec 23 #PHP
You might like
屏蔽浏览器缓存另类方法
2006/10/09 PHP
php xfocus防注入资料
2008/04/27 PHP
PHP写杨辉三角实例代码
2011/07/17 PHP
php中session退出登陆问题
2014/02/27 PHP
PHP永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
PHP常用设计模式之委托设计模式
2016/02/13 PHP
PHP编程实现阳历转换为阴历的方法实例
2017/08/08 PHP
php中关于换行的实例写法
2019/09/26 PHP
asp批量修改记录的代码
2008/06/25 Javascript
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
javascript eval(func())使用示例
2013/12/05 Javascript
jquery中常用的函数和属性详细解析
2014/03/07 Javascript
js实现图片旋转的三种方法
2014/04/10 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
图解js图片轮播效果
2015/12/20 Javascript
js实现定时进度条完成后切换图片
2017/01/04 Javascript
layui的table中显示图片方法
2018/08/17 Javascript
python发送arp欺骗攻击代码分析
2014/01/16 Python
采用python实现简单QQ单用户机器人的方法
2014/07/03 Python
Python实现模拟时钟代码推荐
2015/11/08 Python
python学习入门细节知识点
2018/03/29 Python
python调用c++返回带成员指针的类指针实例
2019/12/12 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
python Shapely使用指南详解
2020/02/18 Python
Jupyter Notebook的连接密码 token查询方式
2020/04/21 Python
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
从零实现一个自定义html5播放器的示例代码
2017/08/01 HTML / CSS
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
工程招投标邀请书
2014/01/26 职场文书
承诺书模板
2014/08/30 职场文书
出国留学英文自荐信
2015/03/25 职场文书
初中数学教学随笔
2015/08/15 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书
五年级作文之学校的四季
2019/12/05 职场文书
React实现动效弹窗组件
2021/06/21 Javascript