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输出echo、print、print_r、printf、sprintf、var_dump的区别比较

    PHP是一种非常常用的服务器端编程语言,输出是其最常用的功能之一。在PHP中,常见的输出函数包括:echo、print、print_r、printf、sprintf和var_dump。接下来,我们来一一讲解这些函数的区别比较。 echo echo函数是PHP中最常用的输出函数之一,用于向浏览器输出文本信息。它的语法非常简单,可以输出一个或多个字符串,也可以输…

    PHP 2023年5月26日
    00
  • PHP中调用C/C++制作的动态链接库的教程

    下面是详细讲解如何在PHP中调用C/C++制作的动态链接库的完整攻略: 什么是动态链接库 动态链接库是一种可执行二进制文件,可以在程序运行时被动态加载到内存中,并提供给程序使用。动态链接库通常包含一个或多个函数或变量。程序在使用函数或变量时,可以直接调用动态链接库中的函数或变量。由于动态链接库在程序运行时才被加载,因此可以提高程序的灵活性和可重用性。 制作动…

    PHP 2023年5月23日
    00
  • 一个用于网络的工具函数库

    一、概述 一个用于网络的工具函数库,是为了帮助开发者更便捷地进行网络相关的编程而产生的。主要包含一些常用的网络相关的函数,例如请求处理、数据返回、异常处理、日志记录等。 二、安装 该工具函数库可以通过npm进行安装,使用以下命令: npm install net-utils –save 三、使用 1.请求处理 请求处理是该工具函数库的核心。对于经常需要与接…

    PHP 2023年5月25日
    00
  • 小程序多图列表实现性能优化的方法步骤

    下面是针对小程序多图列表实现性能优化的方法步骤的完整攻略。 1. 对图片进行压缩处理 大型图片会严重影响网站的加载速度,因此可以通过压缩图片来降低文件大小,以提高网站的性能。在小程序中,可以使用imigix等工具将图片进行实时处理,以便更快地加载。 下面是一个简单的示例代码,展示了如何使用imigix对图片进行压缩处理: const imigix = req…

    PHP 2023年5月30日
    00
  • ThinkPHP模板判断输出Present标签用法详解

    下面是详细讲解“ThinkPHP模板判断输出Present标签用法详解”的完整攻略。 ThinkPHP模板判断输出Present标签用法详解 Present标签的作用 在ThinkPHP的模板引擎中,使用Present标签可以判断一个值是否存在,如果存在则输出对应的内容;如果不存在则不会输出任何内容,避免输出空白。 Present标签的基本用法 在模板中使用…

    PHP 2023年5月26日
    00
  • PHP遍历数组的三种方法及效率对比分析

    PHP遍历数组的三种方法及效率对比分析 在PHP中,数组是一种非常重要的数据结构。但是,我们经常需要对数组进行遍历。那么,PHP中如何遍历数组呢?通常,我们可以使用以下三种方法进行数组遍历。 1. foreach循环 使用foreach循环,可以快速、方便地遍历数组。foreach循环的基本语法如下: foreach ($array as $value) {…

    PHP 2023年5月26日
    00
  • php tools for visual studio 完整可用破解详细教程

    为了保证版权合法,我无法提供“php tools for visual studio 完整可用破解详细教程”的攻略。但是,我可以提供一些关于 PHP 开发的工具和建议。下面是一些有用的信息和示例: PHP 开发工具 Visual Studio Code: 这是一个轻量级但强大的代码编辑器,拥有许多有用的功能和插件,适用于 PHP 开发人员。它支持语法高亮、代…

    PHP 2023年5月27日
    00
  • php使用curl和正则表达式抓取网页数据示例

    下面是“php使用curl和正则表达式抓取网页数据示例”的完整攻略: 一、curl的基本用法 curl是一个非常常用的工具,它可以通过网络协议,向网络服务器发送请求,从而获取服务器返回的数据。在PHP中,可以使用curl库来发起网络请求,并获取服务器返回的数据。 1.1 基本的curl请求 下面是一个基本的curl请求的代码示例: $url = ‘https…

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