scandir和glob遍历文件夹目录,以及两者效率性能测试对比

阅读420 评论0
php遍历文件夹目录常用的两个内置函数:scandir和glob先看官方说明:其中glob方法用起来比较方便,并且支持通配符。列举一些DEMO,如下:1、遍历目录下所有文件<?php print_r(glob('./data/*.*')); ?>2、遍历目录下指定后缀文件<?php print_r(glob('...

php遍历文件夹目录常用的两个内置函数:scandirglob

先看官方说明:


其中glob方法用起来比较方便,并且支持通配符。

列举一些DEMO,如下:

1、遍历目录下所有文件

<?php print_r(glob('./data/*.*')); ?>

2、遍历目录下指定后缀文件

<?php print_r(glob('./data/*.html')); ?>

3、遍历目录下的子目录

<?php print_r(glob('./data/*',GLOB_ONLYDIR)); ?>


看起来是不是感觉glob比scandir好用多了,下面开始测试性能,对比一下。


测试环境说明:window系统,CPU:i5-4460,内存:8G,服务器:Apache,php版本:7.3.4

测试数据说明:data文件夹中有10个子文件夹,其中a文件夹有4909个html文件,data文件夹下所有文件数量为:39795个

附图片:


单文件夹遍历测试:

    代码程序:

        单文件夹遍历测试PHP代码

    运行结果对比:

        单文件夹遍历测试结果

可以看到,scandir和glob占用的内存都一样,耗时差别很大,4909个文件遍历相差0.329秒,目前来看scandir更好

接下来测试多文件夹遍历

多文件夹遍历测试:

    代码程序:

        

    运行结果对比:

&


0 位网友评论:

欢迎 来评论

请填写验证码