php遍历目录输出目录及其下的所有文件示例

PHP遍历目录输出目录及其下的所有文件

1. 准备目录结构

在开始之前,需要准备一个目录结构,用于测试遍历目录的功能。假设在网站的根目录下准备一个名为 test 的目录,并在该目录下分别创建两个子目录 folder1folder2,并在这两个子目录下分别各创建一个文件。目录结构如下:

test/
|-- folder1/
|   |-- file1.txt
|-- folder2/
|   |-- file2.txt

2. 编写PHP代码

我们可以使用 opendir() 函数打开目录,然后使用 readdir() 函数遍历目录下的所有文件和子目录。代码示例如下:

<?php
$path = './test/';

function scan_dir($path) {
    $dir_handle = opendir($path);
    while ($item = readdir($dir_handle)) {
        if ($item == '.' || $item == '..') {
            continue;
        }
        $item_path = $path . '/' . $item;
        if (is_file($item_path)) {
            echo $item_path . "\n";
        } elseif (is_dir($item_path)) {
            echo $item_path . "\n";
            scan_dir($item_path);
        }
    }
    closedir($dir_handle);
}

scan_dir($path);
?>

这段代码首先打开了 ./test/ 目录,然后使用 while 循环读取该目录下的所有文件和子目录。对于读取到的每一个文件或子目录,代码判断其是否为目录,若为目录,则通过递归的方式遍历目录及其所有子目录。

执行这段代码,将会输出以下内容:

./test/folder1
./test/folder1/file1.txt
./test/folder2
./test/folder2/file2.txt

3. 遍历目录并记录每个子目录下的文件数

下面是另一个示例,我们可以遍历目录并记录每个子目录下的文件数。实现方式类似于上一个示例,只是增加了子目录下文件数的统计。

<?php
$path = './test/';

function scan_dir($path) {
    $dir_handle = opendir($path);
    $count = 0;
    while ($item = readdir($dir_handle)) {
        if ($item == '.' || $item == '..') {
            continue;
        }
        $item_path = $path . '/' . $item;
        if (is_file($item_path)) {
            $count++;
        } elseif (is_dir($item_path)) {
            $count += scan_dir($item_path);
        }
    }
    closedir($dir_handle);
    echo $path . ': ' . $count . "\n";
    return $count;
}

scan_dir($path);
?>

这段代码首先打开了 ./test/ 目录,然后使用 while 循环读取该目录下的所有文件和子目录。对于读取到的每一个文件或子目录,代码通过判断其是否为目录,来统计其下文件总数。当遍历到最底层的子目录时,函数将返回该子目录下文件数,从而让父目录的统计数加上该子目录的文件数。

执行这段代码,将会输出以下内容:

./test/: 4
./test/folder1: 1
./test/folder2: 1

以上是两个 PHP 遍历目录的示例,希望能解决你的问题。

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

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

相关文章

  • PHP编码转换函数 自动转换字符集支持数组转换

    来讲解一下PHP编码转换函数自动转换字符集支持数组转换的完整攻略。 什么是PHP编码转换函数 在PHP中,编码转换函数能够实现不同字符集之间的转换。这些函数可以将字符串从一种字符集转换为另一种字符集。PHP编码转换函数有很多种,比如iconv()、mb_convert_encoding()、iconv_strlen()等常用的函数。 如何自动转换字符集 使用…

    PHP 2023年5月26日
    00
  • PHP之将POST数据转化为字符串的实现代码

    将POST数据转化为字符串通常涉及处理数据和编码问题,本文将提供一种通用的PHP代码实现,适用于大多数项目。 步骤1. 获取POST数据 首先,我们需要使用PHP的$_POST全局变量获取POST数据。$_POST是一个关联数组,每个键值对分别表示POST参数的名称和值。例如,如果我们POST了一个名为”username”的参数,其值为”johndoe”,则…

    PHP 2023年5月26日
    00
  • 深入php var_dump()函数的详解

    深入PHP var_dump()函数的详解 1. var_dump()函数的基本用法 var_dump()函数可以用于输出一个或多个变量的完整信息。它不仅可以输出变量的值,还可以输出变量的类型、长度或者是数组/对象的结构信息。使用方法很简单,只需要将要输出的变量作为参数传入即可,例如: <?php $a = "Hello World&quot…

    PHP 2023年5月26日
    00
  • PHP数组访问常用方法解析

    PHP数组访问常用方法解析 一、读取数组元素 PHP数组可以使用下标来访问数组元素。下标是数组中用于标识元素位置的索引,可以是整数或字符串类型。 1.通过下标读取元素 以下是通过下标读取数组元素的语法: $arrayName[index] 其中,$arrayName表示数组名,index是下标。如果index为整数,则表示读取数组中的第index个元素;如果…

    PHP 2023年5月26日
    00
  • php实现简易计算器

    让我来详细讲解一下如何实现用 PHP 编写简易计算器的攻略。 步骤一:创建 HTML 页面 首先,我们需要在项目中创建一个 HTML 页面,用于接收用户的输入和显示计算结果。可以正常的使用 HTML5 语法,建议使用表单元素来接收用户的输入。需要注意的是,我们的 HTML 页面需要引入一个 PHP 的处理文件,代码如下: <!DOCTYPE html&…

    PHP 2023年5月23日
    00
  • PHP解压tar.gz格式文件的方法

    下面是解压tar.gz格式文件的方法的完整攻略。 一、什么是tar.gz格式文件 tar.gz格式文件是常见的文件压缩格式,它将多个文件或目录压缩成一个文件,以便于传输和存储。tar.gz格式文件一般使用GNU Tar工具来创建和解压。 二、解压tar.gz格式文件的方法 1. 使用命令行解压 在Linux或MacOS系统中,可以通过命令行方式解压tar.g…

    PHP 2023年5月26日
    00
  • 初学者必看的Ajax总结篇

    下面是“初学者必看的Ajax总结篇”的完整攻略。 什么是Ajax Ajax(Asynchronous JavaScript and XML)意为“异步JavaScript和XML”,是一种无需重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术。通过Ajax,用户可以更快地获取信息,提升用户体验。 Ajax如何运作 Ajax的工作原理是基于浏览器提…

    PHP 2023年5月23日
    00
  • php递归遍历多维数组的方法

    针对“php递归遍历多维数组的方法”的话题,我来具体讲解一下。 标题 什么是递归遍历多维数组? 在 PHP 中,多维数组是一种嵌套数组的数据类型。在需要遍历这种多维数组时,如果数组中还包含着数组,就需要使用递归方法来遍历这样的多维数组,以取出其中的数据。 如何使用递归遍历多维数组? 在 PHP 中,可以使用递归函数来遍历多维数组。递归函数是指在函数中调用自身…

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