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 模拟$_PUT实现代码
Mar 15 PHP
php 伪造本地文件包含漏洞的代码
Nov 03 PHP
用PHP写的基于Memcache的Queue实现代码
Nov 27 PHP
php存储过程调用实例代码
Feb 03 PHP
实测在class的function中include的文件中非php的global全局环境
Jul 15 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
Dec 25 PHP
ThinkPHP多语言支持与多模板支持概述
Aug 22 PHP
thinkphp3.0输出重复两次的解决方法
Dec 19 PHP
Symfony2创建基于域名的路由相关示例
Nov 14 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
Jan 21 PHP
PHP ADODB实现分页功能简单示例
May 25 PHP
laravel7学习之无限级分类的最新实现方法
Sep 30 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读取文件内容的方法汇总
2015/01/24 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
JavaScript入门教程(7) History历史对象
2009/01/31 Javascript
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
JavaScript驾驭网页-DOM
2016/03/24 Javascript
js实现当鼠标移到表格上时显示这一格全部内容的代码
2016/06/12 Javascript
每日十条JavaScript经验技巧(二)
2016/06/23 Javascript
vue分页组件table-pagebar使用实例解析
2020/11/15 Javascript
Javascript 一些需要注意的细节(必看篇)
2017/07/08 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
Vue 递归多级菜单的实例代码
2019/05/05 Javascript
[42:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS OpTic
2018/03/31 DOTA
[43:03]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python中列表元素连接方法join用法实例
2015/04/07 Python
Python实现PS滤镜中马赛克效果示例
2018/01/20 Python
tensorflow中next_batch的具体使用
2018/02/02 Python
Numpy之文件存取的示例代码
2018/08/03 Python
PyQt5根据控件Id获取控件对象的方法
2019/06/25 Python
使用django的ORM框架按月统计近一年内的数据方法
2019/07/18 Python
使用Python快乐学数学Github万星神器Manim简介
2019/08/07 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
2021/01/27 Python
英国曼彻斯特宠物用品品牌:Bunty Pet Products
2019/07/27 全球购物
医学生求职自荐信
2013/10/25 职场文书
班长竞选演讲稿
2014/04/24 职场文书
加薪通知
2015/04/25 职场文书
工程款催款函
2015/06/24 职场文书
低端且暴利的线上线下创业项目分享
2019/09/03 职场文书
2019年感恩励志演讲稿(收藏备用)
2019/09/11 职场文书
Python使用openpyxl批量处理数据
2021/06/23 Python