php遍历文件夹下的所有文件和子文件夹示例

下面是关于PHP遍历文件夹的攻略。

标准的遍历文件夹代码块

使用PHP的opendir函数打开一个目录,操作完成后使用closedir关闭目录。在处理每一个文件或子目录时,使用PHP内置的递归函数执行相应的操作。

同样需要注意的是,在操作完每个文件或子目录后,要检查其是否为.,..,以及文件是否被隐藏。 普通遍历代码如下:

$dir = './'; //待遍历目录
if (is_dir($dir)) {
  if ($dh = opendir($dir)) {
    while (($filename = readdir($dh)) !== false) {
      if ($filename != '.' && $filename != '..' && !is_hidden($filename)) {
        if (is_dir($dir . '/' . $filename)) {
          // 是目录,递归遍历文件夹
          traverse($dir . '/' . $filename);
        } else {
          // 是文件,进行相应操作
          file_operation($dir . '/' . $filename);
        }
      }
    }
    closedir($dh);
  }
}
/**
* 判断文件是否为隐藏文件
**/
function is_hidden($path) {
  return (strpos($path, '.') === 0);
}

示例1:输出目录下所有文件和子目录的路径

function traverse($dir) {
  $dir_handle = opendir($dir);
  while ($filename = readdir($dir_handle)) {
    if ($filename != '.' && $filename != '..' && !is_hidden($filename)) {
      if (is_dir($dir . '/' . $filename)) {
        // 目录
        echo $dir . '/' . $filename . '<br>';
        traverse($dir . '/' . $filename);
      } else {
        // 文件
        echo $dir . '/' . $filename . '<br>';
      }
    }
  }
  closedir($dir_handle);
}
traverse('./');

示例2:统计目录下所有文件和子目录的总数量

$count = 0;
function traverse($dir) {
  global $count;
  $dir_handle = opendir($dir);
  while ($filename = readdir($dir_handle)) {
    if ($filename != '.' && $filename != '..' && !is_hidden($filename)) {
      if (is_dir($dir . '/' . $filename)) {
        // 目录
        traverse($dir . '/' . $filename);
      } else {
        // 文件
        $count++;
      }
    }
  }
  closedir($dir_handle);
  return $count;
}
echo 'The count of files in the directory is: ' . traverse('./');

希望这些内容对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php遍历文件夹下的所有文件和子文件夹示例 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • Unicode中的数学符号小结

    Unicode中的数学符号小结 数学符号在科技领域中经常使用。Unicode是世界范围内计算机系统的字符集标准,支持各种语言中包含的特殊符号和字符。Unicode也包含了许多数学符号,本文将对Unicode中的数学符号进行详细介绍和小结。 数学运算符号 加号和减号: 加号:+,Unicode编码为U+002B; 减号:-,Unicode编码为U+002D。 …

    PHP 2023年5月26日
    00
  • 详解PHP防止直接访问.php 文件的实现方法

    要防止直接访问.php文件,我们可以使用.htaccess实现。下面是详解PHP防止直接访问.php文件的实现方法的完整攻略。 第一步:创建.htaccess文件 在.php文件所在的目录中创建一个名为.htaccess的文件,并在该文件中添加以下代码: # 禁止直接访问 PHP 文件 <Files *.php> Deny from all &l…

    PHP 2023年5月26日
    00
  • php中的Base62类(适用于数值转字符串)

    PHP中的Base62类 Base62类是一种数值转字符串的工具,它将数字从10进制转换为62进制后再转化为字符串,适用于生成随机字符串、短链接等场景。下面就来详细讲解如何在PHP中使用Base62类完成这一操作。 安装 Base62类并不是PHP的原生类,需要使用composer进行安装。在安装前需要安装composer(PHP的包管理工具),安装方法见官…

    PHP 2023年5月26日
    00
  • 微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法

    微信公众号支付是一种移动支付方式,常用于各类电商网站或其他需要在线支付的服务,并且其支付方式可以方便用户通过微信支付来完成在线支付。在接入微信公众号支付时,开发人员经常会遇到调用支付jsapi缺少参数的问题,其中包括了缺少 timeStamp 参数等。下面是详细的解决方法: 步骤一:确认公众号支付是否已开通 在开始处理 jsapi 缺少参数的问题之前,需要确…

    PHP 2023年5月23日
    00
  • PHP面向接口编程 耦合设计模式 简单范例

    PHP面向接口编程是一种非常灵活的设计模式,它能够实现代码的松耦合,从而提高代码的可维护性和可拓展性。接下来,我们将从以下几点详细讲解如何使用面向接口编程实现模块化设计。 什么是面向接口编程 面向接口编程,就是抽象出接口,然后在实现的时候通过实现接口的方式来实现代码的松耦合。在面向接口编程中,我们抽象出来的接口可以看作接口与实现的契约,具体的实现类只要符合该…

    PHP 2023年5月27日
    00
  • 10款实用的PHP开源工具

    10款实用的PHP开源工具攻略 PHP开源工具很多,包含了前端、后台、安全等方面。这里我们将介绍10款实用的PHP开源工具,并且给出详细的攻略。 1. Composer Composer是PHP的一个包管理工具,可以方便地安装、更新和导出PHP项目中的依赖包。使用Composer可以避免手动下载和安装库,从而可以更轻松地构建和维护项目。使用Composer的…

    PHP 2023年5月24日
    00
  • PHP中extract()函数的定义和用法

    这里是“PHP中extract()函数的定义和用法”的完整攻略。 1.函数定义 extract() 是 PHP 内置函数,在 PHP 5、PHP 7 中都有支持。它的作用是将数组中的键名作为变量名,将键值作为变量值。函数定义如下: extract(array $array, int $flags = EXTR_OVERWRITE, string $prefi…

    PHP 2023年5月25日
    00
  • 基于PHP CURL获取邮箱地址的详解

    请听我详细讲解基于PHP CURL获取邮箱地址的详解。 一、准备工作 首先,为了实现基于PHP CURL获取邮箱地址,我们需要准备以下两个方面的内容: 1. CURL扩展 要使用CURL扩展,首先需要在PHP中启用CURL扩展。在PHP中启用CURL扩展非常简单,只需要在php.ini中找到extension=curl这一行,去掉前面的注释(分号),并重启w…

    PHP 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部