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编程中八种常见的文件操作方式
Nov 19 PHP
自动生成文章摘要的代码[PHP 版本]
Mar 20 PHP
PHP中的str_repeat函数在JavaScript中的实现
Sep 16 PHP
PHP实现AES256加密算法实例
Sep 22 PHP
PHP实现图片裁剪、添加水印效果代码
Oct 01 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
Oct 08 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 PHP
Thinkphp5行为使用方法汇总
Dec 21 PHP
使用PHPExcel导出Excel表
Sep 08 PHP
php面试实现反射注入的详细方法
Sep 30 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
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
VML绘图板②脚本--VMLgraph.js、XMLtool.js
2006/10/09 PHP
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
2014/09/24 PHP
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
番茄的表单验证类代码修改版
2008/07/18 Javascript
js的闭包的一个示例说明
2008/11/18 Javascript
前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
2010/03/04 Javascript
JS解决ie6下png透明的方法实例
2013/08/02 Javascript
js 单击式的下拉菜单效果实例
2013/08/13 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
2015/12/17 Javascript
浅谈React 属性和状态的一些总结
2016/11/21 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
canvas简单快速的实现知乎登录页背景效果
2017/05/08 Javascript
layer.open关闭父窗口 以及调用父页面的方法
2018/08/17 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
解决vue.js中settimeout遇到的问题(时间参数短效果不稳定)
2020/07/21 Javascript
Postman如何实现参数化执行及断言处理
2020/07/28 Javascript
详解Python如何获取列表(List)的中位数
2016/08/12 Python
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
2017/12/21 Python
基于python生成器封装的协程类
2019/03/20 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
Python turtle库的画笔控制说明
2020/06/28 Python
PHP如何防止SQL注入
2014/05/03 面试题
一组SQL面试题
2016/02/15 面试题
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
2015/07/23 面试题
化工专业应届生求职信
2013/11/08 职场文书
汽车制造与装配专业自荐信范文
2014/01/02 职场文书
天鹅的故事教学反思
2014/02/04 职场文书
财务人员求职自荐书范文
2014/02/10 职场文书
汽车运用工程专业求职信
2014/06/18 职场文书
排球赛新闻稿
2015/07/17 职场文书
springboot临时文件存储目录配置方式
2021/07/01 Java/Android
JavaScript数组reduce()方法的语法与实例解析
2021/07/07 Javascript
MySQL创建定时任务
2022/01/22 MySQL
vue实现滑动解锁功能
2022/03/03 Vue.js