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

首先,我们可以使用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实现ftp上传文件示例

    这里为您提供一份 PHP 实现 FTP 上传文件的完整攻略,包含了两个示例说明。 1. 连接 FTP 服务器 在 PHP 中连接 FTP 服务器,需要使用 FTP 扩展库,该扩展库默认已经安装在 PHP 中,无需进行额外安装。 示例1:连接 FTP 服务器 //FTP服务器主机地址 $ftp_server = "ftp.example.com&qu…

    PHP 2023年5月27日
    00
  • PHP守护进程的两种常见实现方式详解

    PHP守护进程的两种常见实现方式详解 在PHP后端开发中,常常需要开发一些守护进程来完成一些后台任务。下面我们将介绍两种常见的PHP守护进程实现方式:使用pcntl扩展和使用Supervisor。 1. 使用pcntl扩展 1.1 守护进程的基本概念 守护进程是在后台运行的一种特殊进程,它通常不与任何控制终端相连,而是作为系统后台服务的一部分运行。守护进程一…

    PHP 2023年5月24日
    00
  • 微信小程序使用wx.request请求服务器json数据并渲染到页面操作示例

    下面是使用wx.request请求服务器JSON数据并渲染到页面的步骤: 1. 准备工作 在使用wx.request请求服务器JSON数据之前,需要先知道接口地址和返回的数据格式。若是自己开发的API,需要自己定义返回的数据格式;若是使用第三方API,则需要查看API的文档,了解返回的数据格式。 2. 发送请求 在小程序中调用wx.request函数发送请求…

    PHP 2023年5月23日
    00
  • php Trait基类use trait,本类不use

    一 回顾trait使用 https://blog.csdn.net/bushuwei/article/details/103514174发现之前本人说明很模糊,自己居然不知道为什么其实这里的$c,就是class B再次回顾逻辑 二 分析 self和static区别说的没毛病 Trait基类use trait,本类不use。那么如果用的new self,则你n…

    PHP 2023年4月17日
    00
  • Laravel操作redis和缓存操作详解

    下面是“Laravel操作redis和缓存操作详解”的完整使用攻略,包括Laravel操作redis的基本原理、缓存操作的详解和两个示例说明。 Laravel操作redis的基本原理 Laravel是一款流行的PHP框架,它提供了对redis的支持。Laravel操作redis的基本原理是:通过redis扩展连接redis服务器,然后使用redis提供的AP…

    PHP 2023年5月12日
    00
  • PHP注入实例之PHP网站系统入侵(图)

    首先,需要了解什么是PHP注入。PHP注入是指通过网页表单等方式提交含有恶意脚本的SQL语句,借此来达到欺骗数据库服务器执行恶意脚本的目的。而在PHP网站系统入侵攻击中,攻击者通过PHP注入获得网站系统管理员权限,从而对网站系统进行非法操作。 以下是本次攻略的详细步骤: 步骤一:了解目标网站的SQL注入漏洞 首先需要对目标网站进行渗透测试,找出网站的SQL注…

    PHP 2023年5月23日
    00
  • 微信端调取相册和摄像头功能,实现图片上传,并上传到服务器

    下面将为您详细讲解“微信端调取相册和摄像头功能,实现图片上传,并上传到服务器”的完整攻略。 1. 确定文件上传API接口 在开始进行文件上传操作之前,需要确认已经有可用的API接口供前端调用,该API接口能够接收前端发送过来的图片文件并保存到服务器指定的位置。API接口可以使用PHP、Java、Python等任何服务器端语言实现,这里以PHP为例。 <…

    PHP 2023年5月30日
    00
  • 如何对PHP程序中的常见漏洞进行攻击(上)

    对于网站开发中的常见漏洞,黑客或攻击者可以尝试通过漏洞实现攻击,从而获取敏感信息,篡改数据,甚至控制整个网站。其中 PHP 作为一种常见的服务端脚本语言,也有相应的常见漏洞类型。下面,本文将简要介绍如何对 PHP 程序中的常见漏洞进行攻击。 1. SQL 注入漏洞 SQL 注入漏洞是指攻击者可以通过修改 SQL 语句的方式,实现非法获取、修改、删除等操作。攻…

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