• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP读取目录树的实现方法分析

    本文实例讲述了PHP读取目录树的实现方法。分享给大家供大家参考,具体如下:

    前一阵时间面试XX公司笔试题中竟然有这样一道题:

    使用PHP列出目录树!

    当时一看就懵逼了!基本的思路还是有的,不过是使用递归算法,但对PHP操作目录文件的方法却不是很了解,所以今天好好补习一下!

    解题思路:

    1. 列出目录中的文件。
    2. 判断是否是目录,如果是目录就继续递归。
    3. 将所有文件名,存入多维数组

    ?php
    function recurDir($pathName)
    {
      //将结果保存在result变量中
      $result = array();
      $temp = array();
      //判断传入的变量是否是目录
      if(!is_dir($pathName) || !is_readable($pathName)) {
        return null;
      }
      //取出目录中的文件和子目录名,使用scandir函数
      $allFiles = scandir($pathName);
      //遍历他们
      foreach($allFiles as $fileName) {
        //判断是否是.和..因为这两个东西神马也不是。。。
        if(in_array($fileName, array('.', '..'))) {
          continue;
        }
        //路径加文件名
        $fullName = $pathName.'/'.$fileName;
        //如果是目录的话就继续遍历这个目录
        if(is_dir($fullName)) {
          //将这个目录中的文件信息存入到数组中
          $result[$fullName] = recurDir($fullName);
        }else {
          //如果是文件就先存入临时变量
          $temp[] = $fullName;
        }
      }
      //取出文件
      if($temp) {
        foreach($temp as $f) {
          $result[] = $f;
        }
      }
      return $result;
    }
    //验证一下这个函数是否好用!
    $tree = recurDir('cart_ajax');
    echo "pre>";
    print_r($tree);
    echo "/pre>";
    ?>
    
    

    cart_ajax文件夹结构

    js文件夹下的内容

    显示结果

    大功告成了!目录的级别确实是这样的,不过看起来也太low了吧!稍微美化一下吧!

    function beautifulTree($arr, $l = '-|')
    {
      static $l = '';
      static $str = '';
      //遍历刚才得到的目录树
      foreach($arr as $key=>$val) {
        //如果是个数组,也就代表它是个目录,那么就在它的子文件中加入-|来表示是下一级吧
        if(is_array($arr[$key])) {
          $str.=$l.$key."br/>";
          $l.='-|';
          beautifulTree($arr[$key], $l);
        }else {
          $str.=$l.$val."br/>";
        }
      }
      $l = '';
      return $str;
    }
    $beautifulTree = beautifulTree($tree);
    echo "pre>";
    print_r($beautiful);
    echo "/pre>";
    
    

    显示结果

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP目录操作技巧汇总》、《php文件操作总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • 树型结构列出指定目录里所有文件的PHP类
    • php读取目录及子目录下所有文件名的方法
    • PHP读取目录下所有文件的代码
    • php递归法读取目录及文件的方法
    • PHP目录函数实现创建、读取目录教程实例
    • php读取目录所有文件信息dir示例
    • php遍历目录与文件夹的多种方法详解
    • PHP遍历某个目录下的所有文件和子文件夹的实现代码
    • 使用PHP遍历文件夹与子目录的函数代码
    • PHP使用glob函数遍历目录或文件夹的方法
    • PHP遍历目录文件的常用方法小结
    上一篇:针对PHP开发安全问题的相关总结
    下一篇:用PHP的反射实现委托模式的讲解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP读取目录树的实现方法分析 PHP,读取,目录树,的,实现,