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 相关文章推荐
全文搜索和替换
Oct 09 PHP
PHP 工厂模式使用方法
May 18 PHP
php HandlerSocket的使用
May 02 PHP
php将字符串转化成date存入数据库的两种方式
Apr 28 PHP
Thinkphp中Create方法深入探究
Jun 16 PHP
PHP中的日期加减方法示例
Aug 21 PHP
php实现Linux服务器木马排查及加固功能
Dec 29 PHP
php根据生日计算年龄的方法
Jul 13 PHP
无需数据库在线投票调查php代码
Jul 20 PHP
PHP yii实现model添加默认值的方法(两种方法)
Nov 10 PHP
PHP错误处理函数register_shutdown_function使用示例
Jul 03 PHP
PHP使用file_get_contents发送http请求功能简单示例
Apr 29 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
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
2013/08/13 PHP
php中call_user_func函数使用注意事项
2014/11/21 PHP
php模仿asp Application对象在线人数统计实现方法
2015/01/04 PHP
关于Blog顶部的滚动导航条代码
2006/09/25 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
AngularJs Javascript MVC 框架
2016/06/20 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
2016/08/15 Javascript
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
原生JS实现图片左右轮播
2016/12/30 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
jQuery实现对网页节点的增删改查功能示例
2017/09/18 jQuery
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
js实现微信聊天效果
2020/08/09 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
python重试装饰器示例
2014/02/11 Python
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
python 读写txt文件 json文件的实现方法
2016/10/22 Python
Python 安装setuptools和pip工具操作方法(必看)
2017/05/22 Python
Python中turtle库的使用实例
2019/09/09 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
django的403/404/500错误自定义页面的配置方式
2020/05/21 Python
Python 爬虫的原理
2020/07/30 Python
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
优秀学生干部个人的自我评价
2013/10/04 职场文书
网站设计师的岗位职责
2013/11/21 职场文书
社区党建工作方案
2014/06/10 职场文书
校庆口号
2014/06/20 职场文书
大学生考试作弊检讨书1000字
2014/10/14 职场文书
母亲节感言
2015/08/03 职场文书
咖啡厅里的创业计划书
2019/08/21 职场文书
怎样写好演讲稿题目?
2019/08/21 职场文书
Python图像处理库PIL详细使用说明
2022/04/06 Python
Apache自带的ab压力测试工具的实现
2022/07/23 Servers
面试官问我Mysql的存储引擎了解多少
2022/08/05 MySQL