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&amp;mysql(六)
Oct 09 PHP
人尽可用的Windows技巧小贴士之下篇
Mar 22 PHP
关于php curl获取301或302转向的网址问题的解决方法
Jun 02 PHP
PHP编译安装中遇到的两个错误和解决方法
Aug 20 PHP
php实现redis数据库指定库号迁移的方法
Jan 14 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
Mar 15 PHP
Symfony2中被遗弃的getRequest()方法分析
Mar 17 PHP
PHP 计算两个特别大的整数实例代码
May 07 PHP
PDO::errorInfo讲解
Jan 28 PHP
php实现登录页面的简单实例
Sep 29 PHP
YII2框架中actions的作用与使用方法示例
Mar 13 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
Sep 17 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
jscript之Open an Excel Spreadsheet
2007/06/13 Javascript
JavaScript表达式:URL 协议介绍
2013/03/10 Javascript
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
JavaScript 学习笔记之语句
2015/01/14 Javascript
JS实现可调整倒计时间代码分享
2015/08/18 Javascript
轻松实现jquery手风琴效果
2016/01/14 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
jquery中done和then的区别(详解)
2017/12/19 jQuery
微信小程序之onLaunch与onload异步问题详解
2019/03/28 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
2019/04/16 jQuery
Javascript通过控制类名更改样式
2019/05/24 Javascript
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
vue中使用vue-print.js实现多页打印
2020/03/05 Javascript
vue 全局封装loading加载教程(全局监听)
2020/11/05 Javascript
[36:13]Mineski vs iG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
使用python 获取进程pid号的方法
2014/03/10 Python
Python import自定义模块方法
2015/02/12 Python
python从sqlite读取并显示数据的方法
2015/05/08 Python
Python中循环引用(import)失败的解决方法
2018/04/22 Python
浅谈python下tiff图像的读取和保存方法
2018/12/04 Python
python爬虫获取百度首页内容教学
2018/12/23 Python
使用Python发现隐藏的wifi
2020/03/04 Python
使用CSS3在触屏上为按钮实现激活效果
2013/09/27 HTML / CSS
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
Topshop美国官网:英国快速时尚品牌
2019/05/16 全球购物
简历中自我评价分享
2013/10/09 职场文书
行政前台岗位职责
2013/12/04 职场文书
创业计划书如何编写
2014/02/06 职场文书
法学专业毕业生求职信
2014/06/12 职场文书
病危通知单
2015/04/17 职场文书
2015年全国爱眼日活动方案
2015/05/05 职场文书
总经理2015中秋节致辞
2015/07/29 职场文书
mybatis使用oracle进行添加数据的方法
2021/04/27 Oracle