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数组的一些常见操作汇总
Jul 17 PHP
php数组函数序列之in_array() - 查找数组中是否存在指定值
Nov 07 PHP
Yii实现MySQL多数据库和读写分离实例分析
Dec 03 PHP
php表单提交与$_POST实例分析
Jan 26 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
Mar 21 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
Feb 04 PHP
Yii2实现UploadedFile上传文件示例
Feb 15 PHP
PHP实现电商订单自动确认收货redis队列
May 17 PHP
php处理多图上传压缩代码功能
Jun 13 PHP
tp5框架内使用tp3.2分页的方法分析
May 05 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
Oct 22 PHP
Yii框架getter与setter方法功能与用法分析
Oct 22 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中对数据库操作的封装
2006/10/09 PHP
php中使用接口实现工厂设计模式的代码
2012/06/17 PHP
用PHP实现 上一篇、下一篇的代码
2012/09/29 PHP
Yii使用ajax验证显示错误messagebox的解决方法
2014/12/03 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
juqery 学习之四 筛选查找
2010/11/30 Javascript
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
js处理json以及字符串的比较等常用操作
2013/09/08 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
详解如何用模块化的方式写vuejs
2017/12/16 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
Javascript之高级数组API的使用实例
2019/03/08 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
layui按条件隐藏表格列的实例
2019/09/19 Javascript
Vue的Eslint配置文件eslintrc.js说明与规则介绍
2020/02/03 Javascript
javascript实现简单搜索功能
2020/03/26 Javascript
用python分割TXT文件成4K的TXT文件
2009/05/23 Python
python处理csv数据的方法
2015/03/11 Python
在Python中执行系统命令的方法示例详解
2017/09/14 Python
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
2018/05/30 Python
Python中asyncio与aiohttp入门教程
2018/10/16 Python
在Python中居然可以定义两个同名通参数的函数
2019/01/31 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
Flask 上传自定义头像的实例详解
2020/01/09 Python
40个你可能不知道的Python技巧附代码
2020/01/29 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
美国新娘礼品店:The Paisley Box
2020/09/08 全球购物
市场营销方案范文
2014/03/11 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
诉讼代理人授权委托书
2014/10/11 职场文书
学雷锋感言
2015/08/03 职场文书
Go 自定义package包设置与导入操作
2021/05/06 Golang
Django框架中模型的用法
2022/06/10 Python