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 相关文章推荐
文件上传的实现
Oct 09 PHP
追求程序速度,而不是编程的速度
Apr 23 PHP
ajax实现无刷新分页(php)
Jul 18 PHP
PHP文件读写操作相关函数总结
Nov 18 PHP
PHP生成压缩文件实例
Feb 07 PHP
php从csv文件读取数据并输出到网页的方法
Mar 14 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
May 12 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
Nov 05 PHP
PHP 根据key 给二维数组分组
Dec 09 PHP
thinkPHP5.0框架命名空间详解
Mar 18 PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 PHP
数据结构之利用PHP实现二分搜索树
Oct 25 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
BBS(php &amp; mysql)完整版(七)
2006/10/09 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
2014/10/22 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
PHP版微信小店接口开发实例
2016/11/12 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
2019/12/13 PHP
PHP rsa加密解密算法原理解析
2020/12/09 PHP
js验证表单第二部分
2006/11/25 Javascript
jValidate 基于jQuery的表单验证插件
2009/12/12 Javascript
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
jquery Ajax 实现加载数据前动画效果的示例代码
2014/02/07 Javascript
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
详谈nodejs异步编程
2014/12/04 NodeJs
浅谈JavaScript正则表达式分组匹配
2015/04/10 Javascript
JavaScript DOM 学习总结(五)
2015/11/24 Javascript
js字符串与Unicode编码互相转换
2017/05/17 Javascript
ionic环境配置及问题详解
2017/06/27 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
Thinkjs3新手入门之添加一个新的页面
2017/12/06 Javascript
jQuery实现合并表格单元格中相同行操作示例
2019/01/28 jQuery
React中使用UMEditor的方法示例
2019/12/27 Javascript
vue实现购物车的小练习
2020/12/21 Vue.js
Python实现PS滤镜中马赛克效果示例
2018/01/20 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
2018/06/13 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
2019/01/23 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
Python pip install如何修改默认下载路径
2020/04/29 Python
JupyterNotebook 输出窗口的显示效果调整实现
2020/09/22 Python
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
新加坡最受追捧的体验平台:Hapz
2018/01/01 全球购物
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
优质的学校老师推荐信
2013/10/28 职场文书
品牌推广策划方案
2014/05/28 职场文书
国际贸易系求职信
2014/08/09 职场文书
运动会跳远广播稿5篇
2014/09/17 职场文书
2015年人力资源工作总结
2015/04/08 职场文书