• 技术文章 >后端开发 >php教程

    PHP中怎样获取目录中的文件名(总结分享)

    长期闲置长期闲置2021-11-02 11:56:07原创1745
    在之前的文章《PHP文件处理中目录的关闭和打开知识总结》中详细的介绍了PHP中怎样去打开和关闭目录的相关知识,本篇文章我们继续来看一下PHP中怎样去获取目录下的文件相关知识,这其中就有我们上一篇文章中打开关闭目录的相关知识,希望对大家有帮助!

    我们已经了解了在PHP中怎样去打开和关闭目录,在关闭目录之前会对目录进行操作,其中常用到的操作就有获取目录中的文件和文件夹。

    也就是说,想要了解怎样去获取目录中的文件的话,首先还是得会打开和关闭目录,因此opendir() 函数和closedir()函数还不了解的可以点击上方的连接进行学习。下面我们就来看一下PHP中怎样才能完成目录下文件的获取吧。

    我们在PHP中可以通过readdir()函数和scandir()函数来完成获取目录中文件名的操作。

    readdir()函数获取文件中的下一个文件名

    readdir()函数是一个简单的操作,说它简单是因为当函数执行成功之后,它能够返回通过opendir()函数打开目录中的一个文件或者目录名称;如果函数没有执行成功,返回的结果就是flase

    readdir()函数的基本语法格式如下:

    readdir([resource $dir_handle])

    其中需要注意的是:$dir_handle 是个可选参数,当填写时,表示的就是通过opendir()函数打开的目录参数。

    接下来我们通过示例来看一下readdir()函数的使用,示例如下:

    <?php
        $dir = 'D:';
        if(is_dir($dir)){
            $info = opendir($dir);
            $file = readdir($info);
            echo $file.'<br>';
            closedir($info);
        }
    ?>

    输出结果:

    1102.06.png

    上述示例中这种写法一般是不会用到的,一般想要通过readdir()函数获取所有的目录下的文件,需要通过while循环来进行获取,示例如下:

    <?php
        $dir = 'D:';
        if(is_dir($dir)){
            $info = opendir($dir);
            while (($file = readdir($info)) !== false) {
                echo $file.'<br>';
            }
            closedir($info);
        }
    ?>

    输出结果:

    1102.07.png

    如此我们便通过readdir()函数与while循环配合完成了对目标目录中文件名的获取。这就是readdir()函数的应用,接下来我们看一下另外一种方法,也就是scandir()函数。

    scandir()函数,数组形式返回目录文件名

    上文中我们了解了readdir()函数可以获取目标目录内的文件名,其中配合while循环可以简单直接的得到目录下的文件或者目录名。接下来要说的scandir()函数与readdir()函数有一些不同。

    下面我们来看一下scandir()函数的基本语法,示例如下:

    scandir(string $directory[, int $sorting_order[, resource $context]])

    其中需要注意的是:$directory表示要读取的目录;当$sorting_order的参数设置为SCANDIR_SORT_DESCENDING 或者 1的时候,返回的结果也就是文件名,它们的排列顺序是按着字母降序排列。当$sorting_order的参数设置为SCANDIR_SORT_NONE的时候,返回的结果就是未排列的结果,其中这个参数是个可选参数。

    接下来我们通过示例来看一下scandir()函数的应用,示例如下:

    <?php
        $dir = 'D:\phpstudy_pro\WWW';
        if(is_dir($dir)){
            $arr1 = scandir($dir);
            $arr2 = scandir($dir, 1);
        }
        echo "<pre>";
        print_r($arr1);
        print_r($arr2);
    ?>

    上述示例中,目的是想要通过scandir()函数来获取目录路径为“D:\phpstudy_pro\WWW”的目录内文件名,然后通过不同的参数来实现不同的字母顺序排列,输出结果如下:

    1102.09.png

    通过上述示例就能够看出scandir()函数能够通过数组的形式返回目标目录中的文件名,并且函数内$sorting_order的参数不同返回结果的排序也就不同。

    大家如果感兴趣的话,可以点击《PHP视频教程》、《PHP文件处理中目录的关闭和打开知识总结》进行更多关于PHP知识的学习。

    以上就是PHP中怎样获取目录中的文件名(总结分享)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:PHP文件处理中目录的关闭和打开知识总结 下一篇:带你看懂PHP常量的定义与值的获取
    千万级数据并发解决方案

    相关文章推荐

    • php怎么将浮点型转换成字符串• php类的写法是什么• PHP文件处理中目录的关闭和打开知识总结• php怎么根据时间查询sql• php如何实现倒计时
    1/1

    PHP中文网