Code前端首页关于Code前端联系我们

使用readdir函数浏览文件目录

terry 2年前 (2023-09-30) 阅读数 49 #PHP
文章标签 PHP

1。 readdir函数简介

readdir函数是PHP中用于遍历目录的函数。它的作用是遍历给定文件夹中的所有文件和子文件夹,并返回一个包含该文件夹中所有文件和子文件夹的数组。

使用readdir功能,您可以轻松浏览文件夹中的所有文件和子文件夹。以下是 readdir 函数的语法:

    opendir(dirname(__FILE__));        //打开目录
    readdir();                          //遍历目录
    closedir();                         //关闭目录

2。使用readdir函数浏览

文件夹

使用readdir遍历文件夹最常见的方式是遍历该文件夹中的所有文件和子文件夹。示例代码如下:

    $dir = './test/';
    $dh = opendir($dir);
    while(false !== ($file = readdir($dh))){
        if($file == '.' || $file == '..'){
            //排除根目录
            continue;
        }

        $filePath = $dir.'/'.$file;
        if(is_dir($filePath)){
            //目录进行递归遍历
            scanDir($filePath);
        }else{
            echo $filePath.'
'; } } closedir($dh);

这段代码中,首先使用opendir函数打开文件夹,然后使用readdir函数遍历该文件夹的文件和子文件夹。遍历时必须排除根目录,否则会造成死循环,导致服务器崩溃。

遇到子文件夹时,使用递归遍历,直到遍历完所有文件和子文件夹。

3。遍历指定类型的文件

有时候我们需要遍历文件夹中的某些类型的文件,例如我们只需要遍历所有jpg文件。示例代码如下:

    $dir = './test/';
    $dh = opendir($dir);
    while(false !== ($file = readdir($dh))){
        if($file == '.' || $file == '..'){
            //排除根目录
            continue;
        }

        $filePath = $dir.'/'.$file;
        if(is_dir($filePath)){
            //目录进行递归遍历
            scanDir($filePath);
        }else{
            if(pathinfo($filePath)['extension'] == 'jpg'){
                echo $filePath.'
'; } } } closedir($dh);

在此代码中,使用pathinfo函数获取文件扩展名。如果文件扩展名是jpg,则输出文件路径。

4。使用迭代器遍历文件夹

使用迭代器可以使目录遍历更加灵活,也可以方便地组织代码。以下代码展示了如何使用迭代器遍历文件夹:

    $dir = new RecursiveDirectoryIterator('./test/');
    $files = new RecursiveIteratorIterator($dir);
    foreach($files as $file){
        echo $file.'
'; }

这段代码中,使用RecursiveDirectoryIterator类来遍历目录中的所有文件和子目录,然后使用RecursiveIteratorIterator类来迭代目录。最后在foreach循环中遍历目录并输出文件路径。

5。总结

使用readdir功能,您可以轻松遍历文件夹中的所有文件和子文件夹,还可以根据需要过滤指定类型的文件进行查看。使用迭代器可以使目录遍历更加高效灵活,代码结构更加清晰。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门