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函数 使用原生的PHP函数可以实现文件上传,可以通过以下步骤来实现: 首先在前端页面中添加一个表单,其中包含一个file字段,用于选择文件。 <form action="upload.php" method="post" enctyp…

    PHP 2023年5月26日
    00
  • PHP框架性能测试报告

    以下是详细讲解“PHP框架性能测试报告”的完整攻略: 1.准备工作 在进行PHP框架性能测试报告之前,需要先对框架进行安装和配置环境,并且安装性能测试工具。以下是具体步骤: 安装PHP框架,比如Laravel、CodeIgniter等; 安装性能测试工具Apache JMeter,可以通过官网[https://jmeter.apache.org/]进行下载和…

    PHP 2023年5月24日
    00
  • PHP自动重命名文件实现方法

    下面详细讲解“PHP自动重命名文件实现方法”的完整攻略。 简介 在上传多个文件时,为了避免文件名重复覆盖原有文件,我们需要给文件自动进行重命名,以确保文件名的唯一性。本文将介绍如何使用PHP实现自动重命名文件。 实现方法 在PHP中,我们可以通过以下步骤实现自动重命名文件: 获取上传文件的扩展名(后缀),并生成一个唯一的随机文件名; 判断生成的随机文件名是否…

    PHP 2023年5月24日
    00
  • 百度云版微信测试号专属浪漫消息推送(最新版)

    个人名片:对人间的热爱与歌颂,可抵岁月冗长?Github??‍?:念舒_C.yingCSDN主页✏️:念舒_C.ying个人博客? :念舒_C.ying 一、注册百度云账号 地址:https://login.bce.baidu.com/?redirect=https%3A%2F%2Fconsole.bce.baidu.com%2Fcfc%2F%3F_%3D1…

    PHP 2023年4月18日
    00
  • PHP sprintf()函数用例解析

    PHP sprintf()函数用例解析 什么是sprintf()函数? sprintf()是一种常用的PHP函数,用于根据指定的格式字符串和参数来生成格式化的字符串。它的格式化字符串可以包含一些占位符,例如%s、%d、%f等,用于替代后面给定的参数,生成需要的格式化文本。 sprintf()函数的语法格式 sprintf()函数的语法格式如下: sprint…

    PHP 2023年5月25日
    00
  • 详解PHP如何读取大文件

    以下是详解PHP如何读取大文件的完整攻略。 1. 背景介绍 当我们在处理大文件时,通常我们需要把它读取到内存中,然后进行处理。但是,如果文件太大,我们将面临内存不足的风险。因此,读取大文件时,我们需要采用一些特殊的策略,从而避免出现内存不足的问题。 2. 读取大文件的攻略 2.1 分段读取大文件 分段读取大文件是一种常见的策略。可以实现在读取文件时分段提取要…

    PHP 2023年5月26日
    00
  • 将PHP作为Shell脚本语言使用

    将PHP作为Shell脚本语言使用,主要是针对那些在执行Shell命令时需要进行复杂操作的情况,例如在Shell脚本中需要针对某些文本进行替换、处理等。以下是完整的攻略: 1. 安装PHP解释器 由于我们需要将PHP作为Shell脚本语言使用,因此需要安装PHP解释器,同时还需要将其添加到环境变量中。在Linux系统中,可以通过以下命令安装PHP: sudo…

    PHP 2023年5月23日
    00
  • php数组函数序列之in_array() – 查找数组中是否存在指定值

    让我来详细讲解一下“php数组函数序列之in_array() – 查找数组中是否存在指定值”的完整攻略。 概述 在 PHP 语言中,in_array() 函数可以用于判断一个值是否存在于一个数组中。如果存在,则返回 true,否则返回 false。 语法 in_array($needle, $haystack, $strict); 参数说明:- $needl…

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