php读取目录及子目录下所有文件名的方法

yizhihongxing

首先,我们可以使用opendir()函数打开一个目录,接着使用readdir()函数读取该目录下的所有文件和子目录的文件名,再使用递归进行遍历子目录中的所有文件。下面是完整的代码示例:

function read_directory($dir)
{
    $files = array();

    if(is_dir($dir))
    {
        $handle = opendir($dir);

        if($handle)
        {
            while(($file = readdir($handle)) !== false)
            {
                if($file != "." && $file != "..")
                {
                    if(is_dir($dir . "/" . $file))
                    {
                        $files[$file] = read_directory($dir . "/" . $file);
                    }
                    else
                    {
                        $files[] = $file;
                    }
                }
            }

            closedir($handle);
        }
    }

    return $files;
}

// 读取当前目录下的所有文件名
$files = read_directory(__DIR__);
print_r($files);

// 读取指定目录下的所有文件名
$files = read_directory("/path/to/directory");
print_r($files);

上述代码中,函数read_directory()接受一个目录路径作为参数,返回一个包含当前目录及其子目录下所有文件名的多维数组。

执行上述代码,我们可以得到以下结果:

Array
(
    [file1.txt] => 
    [file2.txt] => 
    [folder1] => Array
        (
            [file3.txt] => 
            [file4.txt] => 
        )

    [folder2] => Array
        (
            [file5.txt] => 
            [folder3] => Array
                (
                    [file6.txt] => 
                    [file7.txt] => 
                )

        )

)

另外,我们也可以使用RecursiveDirectoryIterator类和RecursiveIteratorIterator类来遍历目录及其子目录,并获取所有文件名。下面是另一个示例代码:

$dir = new RecursiveDirectoryIterator(__DIR__);
$iterator = new RecursiveIteratorIterator($dir);

$files = array();

foreach($iterator as $file)
{
    if(!$file->isFile()) continue;

    $files[] = $file->getFilename();
}

print_r($files);

执行上述代码,我们同样可以得到当前目录下的所有文件名的列表。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php读取目录及子目录下所有文件名的方法 - Python技术站

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

相关文章

  • php中实现进程锁与多进程的方法

    实现进程锁的方法 在 PHP 中,可以使用文件锁实现进程锁。具体实现步骤如下: 使用 fopen() 函数打开一个文件,并以”这个文件已被锁定”的形式写入文件内容。 $fp = fopen("lockfile.lock", "w"); fwrite($fp, "这个文件已被锁定"); 尝试获取文件锁…

    PHP 2023年5月23日
    00
  • PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解

    当谈及PHP中的面向对象编程时,抽象、最终和静态是三个重要的关键词。它们各自都有非常特殊的意义和作用,下面将全面深入地讲解这三个关键词的原理和用法。 abstract(抽象) 抽象类不能被实例化,它仅仅是一个被继承的模板类。它的主要目的是让派生类可以简单地继承并且实现或者重写模板的一些方法或属性。通常情况下,抽象类中会定义一组抽象方法或属性,由子类去完成这些…

    PHP 2023年5月26日
    00
  • PHP判断是否微信访问的方法示例

    下面就为您讲解如何使用PHP判断是否为微信访问,完整攻略如下: 1. 通过用户代理字符串判断 首先,在PHP中可以通过$_SERVER变量获取当前访问请求的一些信息,其中就包含了用户代理字符串(User-Agent)信息。微信客户端的User-Agent字符串中会包含“WeChat”关键字,因此可以通过判断User-Agent中是否包含“WeChat”来判断…

    PHP 2023年5月23日
    00
  • PHP 导出Excel示例分享

    下面是“PHP 导出Excel示例分享”的完整攻略: 介绍 在网站开发中,经常需要将数据以表格形式导出为 Excel 文件。PHP 语言提供了丰富的库来进行操作,我们可以使用 PHPExcel 库来实现 Excel 文件的导出。 步骤 1. 下载 PHPExcel 库 可以去官网 https://github.com/PHPOffice/PHPExcel 下…

    PHP 2023年5月26日
    00
  • php递归使用示例(php递归函数)

    下面我将详细讲解“PHP递归使用示例(PHP递归函数)”的完整攻略,包含以下内容: 什么是递归函数(Recursive Function) 递归函数的基本用法 递归函数的注意事项 示例:计算斐波那契数列 示例:遍历多层级分类树 1. 什么是递归函数(Recursive Function) 递归函数是指在函数的执行过程中调用了函数本身,从而达到多次执行的目的。…

    PHP 2023年5月27日
    00
  • PHP 数组基本操作小结(推荐)

    PHP 数组基本操作小结(推荐) 数组(array)是一种非常重要的数据类型,经常被用于存储和管理一组相关数据。PHP的数组操作相对来说比较简单,但有很多细节需要注意。下面就让我们来详细讲解一下PHP数组的基本操作。 一、定义数组 在PHP中,定义一个数组很简单,只需要使用array()方法即可。一般来说,数组元素的下标都是整型或字符串,值可以是任意类型的数…

    PHP 2023年5月26日
    00
  • PHP为表单获取的URL 地址预设 http 字符串函数代码

    首先,为表单获取的URL地址预设http字符串,是为了在表单提交时,不仅仅能够获取到表单提交过来的数据,同时也能够直接跳转到对应的URL页面。以下是一个预设http字符串的PHP代码示例: <?php $url = $_POST[‘url’]; // 表单提交的URL地址 $full_url = ”; if (substr($url, 0, 7) !…

    PHP 2023年5月26日
    00
  • 微信支付开发告警通知实例

    微信支付开发告警通知实例 概述 微信支付平台为商户提供了多种告警通知方式,包括邮件、短信、语音电话等,本文将主要介绍微信支付开发告警通知实例,并以邮件告警通知为例进行详细说明。 邮件告警通知 配置告警邮箱 在微信支付商户平台的“系统设置”中配置告警邮箱,具体步骤如下: 登录微信支付商户平台,在左侧菜单栏选择“系统设置” 进入“邮件告警配置”页签,点击“新增”…

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