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日

相关文章

  • PHP程序员编程注意事项

    PHP程序员编程注意事项 作为一名PHP程序员,编写高质量、高可维护性、高可扩展性的代码是非常重要的。以下是一些编程注意事项: 1. 代码风格 良好的代码风格可提高代码的可读性和可维护性。建议遵循 PSR 规范,尤其是 PSR-1 和 PSR-2 标准。可以使用 PHP_CodeSniffer 工具来检测代码风格是否符合 PSR 规范。 以下是示例代码: &…

    PHP 2023年5月23日
    00
  • Fleaphp常见函数功能与用法示例

    当谈到Fleaphp时,它是一个基于PHP的轻量级Web框架,开发者可以使用该框架实现快速开发和高效的Web应用程序。在Fleaphp提供的各种函数中,有许多常见的函数,这些函数可以帮助开发者快速实现基本的Web应用程序,以及提高应用程序的性能和可靠性。 Fleaphp常见函数功能与用法示例 控制器类函数 $this->input->get($n…

    PHP 2023年5月25日
    00
  • PHP Echo字符串的连接格式

    当我们在PHP中需要拼接多个字符串时,可以使用PHP的字符串连接符来完成,其中包含了多种用法: 1.使用.(点号)连接字符串 在PHP中,我们可以使用点号(.)来连接多个字符串,例如: $name = "Tom"; $age = 24; echo "My name is " . $name . ". I am…

    PHP 2023年5月26日
    00
  • php生成数组的使用示例 php全组合算法

    关于“php生成数组的使用示例 php全组合算法”,我来给你详细讲解一下。 一、php生成数组的使用示例 在PHP中,我们可以使用数组来存储一组数据。如果我们需要生成一个包含指定元素的数组,我们可以使用range()函数。这个函数可以生成指定范围内的连续整数或字符。下面是一个简单的使用示例: $array = range(1, 10); print_r($a…

    PHP 2023年5月26日
    00
  • Golang 之协程的用法讲解

    Golang 之协程的用法讲解 什么是协程 协程(Coroutines),也称为轻量级线程(Light Weight Thread),是一种用户态线程,不依赖于操作系统内核,由程序自己实现调度,可以在一条线程中运行多个协程,协程之间可以独立运行,也可以通过通道(Channel)进行通信和同步。协程通常用于实现事件驱动、异步编程、并发计算等技术领域。 协程的用…

    PHP 2023年5月27日
    00
  • php中通过数组进行高效随机抽取指定条记录的算法

    当我们在PHP中需要从一个数组中随机抽取指定条记录时,我们可以使用以下步骤: 创建一个新的数组来存储我们要抽取的记录: $selectedItems = array(); 使用 PHP 函数 array_rand() 从原始数组中随机选择指定数量的下标。 $randomKeys = array_rand($originalArray, $numberOfIt…

    PHP 2023年5月26日
    00
  • PHP 的比较运算与逻辑运算详解

    PHP 的比较运算与逻辑运算详解 1. 比较运算符 比较运算符用于比较两个值并返回一个布尔值(true 或 false)。下面是 PHP 中常用的比较运算符: 1.1 相等 (==) 相等运算符用于比较两个值是否相等。如果值相等返回 true,否则返回 false。 示例代码: $x = 10; $y = "10"; if ($x == …

    PHP 2023年5月26日
    00
  • CTF中的PHP特性函数解析之中篇

    下面是“CTF中的PHP特性函数解析之中篇”的完整使用攻略,包括函数描述、函数分析、函数使用和两个示例说明。 函数描述 在PHP中,有许多特性函数可以用于CTF挑战。这些函数通常用于字符串处理、加密解密、编码解码等方面。本篇将介绍一些常用的PHP特性函数,包括base64_decode()、eval()、preg_replace()、assert()、sys…

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