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 相关文章推荐
Search Engine Friendly的URL设计
Oct 09 PHP
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
May 24 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
Jun 12 PHP
php找出指定范围内回文数且平方根也是回文数的方法
Mar 23 PHP
php中smarty实现多模版网站的方法
Jun 11 PHP
php实现QQ空间获取当前用户的用户名并生成图片
Jul 25 PHP
PHP类的封装与继承详解
Sep 29 PHP
PHP的openssl加密扩展使用小结(推荐)
Jul 18 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
Dec 15 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
Mar 07 PHP
swoole锁的机制代码实例讲解
Mar 04 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
咖啡常见的种类
2021/03/03 新手入门
smtp邮件发送一例
2006/10/09 PHP
实用函数7
2007/11/08 PHP
用PHP编写和读取XML的几种方式
2013/01/12 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
最常用的8款PHP调试工具
2014/07/06 PHP
PHP return语句的另一个作用
2014/07/30 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
2014/10/27 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
javascript动态加载二
2012/08/22 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
2016/07/14 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
vue slots 组件的组合/分发实例
2018/09/06 Javascript
vue-cli安装使用流程步骤详解
2018/11/08 Javascript
Vue 实现从小到大的横向滑动效果详解
2019/10/16 Javascript
Vue中的this.$options.data()和this.$data用法说明
2020/07/26 Javascript
videocapture库制作python视频高速传输程序
2013/12/23 Python
你应该知道的python列表去重方法
2017/01/17 Python
Python使用PyCrypto实现AES加密功能示例
2017/05/22 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
全面解析HTML5中的标准属性与自定义属性
2016/02/18 HTML / CSS
UNDONE手表官网:世界领先的定制手表品牌
2018/11/13 全球购物
linux面试相关问题
2012/08/11 面试题
教师职位说明书
2014/07/29 职场文书
助残日活动总结
2014/08/27 职场文书
奉献家乡演讲稿
2014/09/13 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话
2014/10/21 职场文书
中小企业员工手册范本
2015/05/14 职场文书
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫