Home >php教程 >php手册 >PHP 获取指定目录下所有文件(包含子目录) - 郑宏鑫erke

PHP 获取指定目录下所有文件(包含子目录) - 郑宏鑫erke

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-05-20 13:19:47850browse

PHP 获取指定目录下所有文件(包含子目录)

测试环境在linux下,如果要在windows,请改正$new_dir中的目录路径查找方式

<span style="color: #000000;">php
 
function get_file_list($dir)
{
  </span><span style="color: #000000;">
    $file_list </span>=<span style="color: #000000;"> array();
    $file_dir_list </span>=<span style="color: #000000;"> array();
     
    $dir_list </span>= scandir($dir); <span style="color: #008000;">//</span><span style="color: #008000;">查找目录  </span>
     
    <span style="color: #0000ff;">foreach</span> ($dir_list <span style="color: #0000ff;">as</span><span style="color: #000000;"> $r)
    {
        </span><span style="color: #0000ff;">if</span> ($r == <span style="color: #800000;">'</span><span style="color: #800000;">.</span><span style="color: #800000;">'</span> || $r == <span style="color: #800000;">'</span><span style="color: #800000;">..</span><span style="color: #800000;">'</span><span style="color: #000000;">)  
        {
            </span><span style="color: #0000ff;">continue</span><span style="color: #000000;">;
        }
        $new_dir </span>= $dir . <span style="color: #800000;">'</span><span style="color: #800000;">/</span><span style="color: #800000;">'</span><span style="color: #000000;"> . $r;
        </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (is_dir($new_dir))
        {</span><span style="color: #000000;">
            $file_dir </span>=<span style="color: #000000;"> get_file_list($new_dir);
            $file_dir_list </span>=<span style="color: #000000;"> array_merge($file_dir_list, $file_dir);
        }
        </span><span style="color: #0000ff;">else</span><span style="color: #000000;">
        {
            $file_list[] </span>=<span style="color: #000000;"> $new_dir;
        }
    }
     
    </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> array_merge($file_list, $file_dir_list);
}
 
$file_list </span>= get_file_list(<span style="color: #800000;">'</span><span style="color: #800000;">.</span><span style="color: #800000;">'</span><span style="color: #000000;">);
print_r($file_list);</span>

scandir定义和用法

scandir() 函数返回一个数组,其中包含指定路径中的文件和目录。

若成功,则返回一个数组,若失败,则返回 false。如果 directory 不是目录,则返回布尔值 false 并生成一条 E_WARNING 级的错误。

语法

scandir(directory,sort,context)
参数 描述
directory 必需。规定要扫描的目录。
sort 可选。规定排列顺序。默认是 0 (升序)。如果是 1,则为降序。
context 可选。规定目录句柄的环境。context 是可修改目录流的行为的一套选项。

例子

<span style="color: #000000;">php
print_r(scandir(</span><span style="color: #800000;">"</span><span style="color: #800000;">images</span><span style="color: #800000;">"</span><span style="color: #000000;">));
</span>?> 

输出:

<span style="color: #000000;">Array
(
[</span><span style="color: #800080;">0</span>] =><span style="color: #000000;"> .
[</span><span style="color: #800080;">1</span>] =><span style="color: #000000;"> ..
[</span><span style="color: #800080;">2</span>] =><span style="color: #000000;"> dog.jpg
[</span><span style="color: #800080;">3</span>] =><span style="color: #000000;"> house.jpg
[</span><span style="color: #800080;">4</span>] =><span style="color: #000000;"> logo.gif
)</span>

 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn