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 上一篇,下一篇文章实现代码与原理说明
May 09 PHP
解析PHP提交后跳转
Jun 23 PHP
php读取文件内容的几种方法详解
Jun 26 PHP
php用正则表达式匹配中文实例详解
Nov 06 PHP
php模板原理讲解
Nov 13 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
Jun 19 PHP
搭建基于Docker的PHP开发环境的详细教程
Jul 01 PHP
Smarty使用自定义资源的方法
Aug 08 PHP
PHP实现清除wordpress里恶意代码
Oct 21 PHP
php实现当前页面点击下载文件的简单方法
Sep 22 PHP
PHP生成唯一ID之SnowFlake算法
Dec 17 PHP
laravel-admin 中列表筛选方法
Oct 03 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中使用addslashes函数转义的安全性原理分析
2014/11/03 PHP
php字符串分割函数用法实例
2015/03/17 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
2015/08/01 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
2009/08/28 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
详解nodejs与javascript中的aes加密
2016/05/22 NodeJs
Bootstrap选项卡动态切换效果
2016/11/28 Javascript
详解webpack和webpack-simple中如何引入css文件
2017/06/28 Javascript
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
2018/03/09 Javascript
python刷投票的脚本实现代码
2014/11/08 Python
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
Python中支持向量机SVM的使用方法详解
2017/12/26 Python
Python操作Oracle数据库的简单方法和封装类实例
2018/05/07 Python
网红编程语言Python将纳入高考你怎么看?
2018/06/07 Python
Python实现的建造者模式示例
2018/08/06 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
Python3.7 读取 mp3 音频文件生成波形图效果
2019/11/05 Python
python selenium操作cookie的实现
2020/03/18 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
印尼最大的在线购物网站:MatahariMall.com
2016/08/26 全球购物
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
what is the difference between ext2 and ext3
2013/11/03 面试题
个人素质的自我评价分享
2013/12/16 职场文书
大学生职业生涯规划书模板
2014/01/18 职场文书
统计岗位职责
2014/02/21 职场文书
开展批评与自我批评发言稿
2014/10/16 职场文书
离婚协议书范文
2015/01/26 职场文书
铁人纪念馆观后感
2015/06/16 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server