PHP写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
2017-02-23 23:52
711 查看
狭义上来说,目录就相当于一个文件夹,里面含有文件和文件夹,其中里面的文件夹又是一个目录,所以涉及到递归操作
例如:D盘下建立文件夹testscandir,testscandir有文件a.php,b.php和文件夹c,文件夹c里有c1.txt和c2.doc
opendir(path,context); //打开目录句柄
path 必需。规定要打开的目录路径。
context 可选。规定目录句柄的环境。context 是可修改目录流的行为的一套选项。
返回值:
成功则返回目录句柄资源。失败则返回 FALSE。
如果路径不是合法目录,或者由于许可限制或文件系统错误导致的目录不能打开,则抛出 E_WARNING 级别的错误。
您可以通过在函数名称前添加 ‘@’ 来隐藏 opendir() 的错误输出。
readdir(dir_handle); //返回目录中下一个文件的文件名
dir_handle 可选。指定之前由 opendir() 打开的目录句柄资源。如果该参数未指定,则使用最后一个由 opendir() 打开的链接。
返回值: 若成功则返回条目名称(文件名),失败则返回 FALSE。
bool is_dir ( string $filename )
如果文件名存在并且为目录则返回 TRUE。如果 filename 是一个相对路径,则按照当前工作目录检查其相对路径。
scandir(directory,sorting_order,context); //返回指定目录中的文件和目录的数组
directory 必需。规定要扫描的目录。
sorting_order
可选。规定排列顺序。默认是 0,表示按字母升序排列。
如果设置为 SCANDIR_SORT_DESCENDING 或者 1,则表示按字母降序排列。
如果设置为 SCANDIR_SORT_NONE,则返回未排列的结果。
context 可选。规定目录句柄的环境。context 是可修改目录流的行为的一套选项。
返回值:
若成功则返回文件和目录的数组。失败则返回 FALSE。
如果 directory 不是目录,则抛出 E_WARNING 级别的错误。
例如:D盘下建立文件夹testscandir,testscandir有文件a.php,b.php和文件夹c,文件夹c里有c1.txt和c2.doc
<?php function xf_scandir($dir) { $files = array(); if( $handle=opendir($dir) ){ //$handle=Resource id #3 while( ($file = readdir($handle)) !== false ){ //echo $file;echo "<hr>"; //$file分别是 . .. a.php b.php c if( $file != ".." && $file != "." ){ if( is_dir($dir . "/" . $file) ){ //文件夹c $files[$file] = xf_scandir($dir . "/" . $file); }else{ //文件a.php,b.php $files[] = $file; //var_dump($file);echo "<hr>";//分别是 a.php b.php } } } closedir($handle); return $files; } } $re=xf_scandir('D:\testscandir'); var_dump($re); /* array (size=3) 0 => string 'a.php' (length=5) 1 => string 'b.php' (length=5) 'c' => array (size=2) 0 => string 'c1.txt' (length=6) 4000 1 => string 'c2.doc' (length=6) */ ?>
opendir(path,context); //打开目录句柄
path 必需。规定要打开的目录路径。
context 可选。规定目录句柄的环境。context 是可修改目录流的行为的一套选项。
返回值:
成功则返回目录句柄资源。失败则返回 FALSE。
如果路径不是合法目录,或者由于许可限制或文件系统错误导致的目录不能打开,则抛出 E_WARNING 级别的错误。
您可以通过在函数名称前添加 ‘@’ 来隐藏 opendir() 的错误输出。
readdir(dir_handle); //返回目录中下一个文件的文件名
dir_handle 可选。指定之前由 opendir() 打开的目录句柄资源。如果该参数未指定,则使用最后一个由 opendir() 打开的链接。
返回值: 若成功则返回条目名称(文件名),失败则返回 FALSE。
bool is_dir ( string $filename )
如果文件名存在并且为目录则返回 TRUE。如果 filename 是一个相对路径,则按照当前工作目录检查其相对路径。
scandir(directory,sorting_order,context); //返回指定目录中的文件和目录的数组
directory 必需。规定要扫描的目录。
sorting_order
可选。规定排列顺序。默认是 0,表示按字母升序排列。
如果设置为 SCANDIR_SORT_DESCENDING 或者 1,则表示按字母降序排列。
如果设置为 SCANDIR_SORT_NONE,则返回未排列的结果。
context 可选。规定目录句柄的环境。context 是可修改目录流的行为的一套选项。
返回值:
若成功则返回文件和目录的数组。失败则返回 FALSE。
如果 directory 不是目录,则抛出 E_WARNING 级别的错误。
相关文章推荐
- PHP一个函数遍历文件夹下的所有文件并输出
- 写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
- 写一个函数,能够遍历一个文件夹下的所有文件和子文件夹
- 3.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
- 写出一个函数,能够遍历一个文件下的所有文件夹和子文件夹(新浪)
- (最明了)写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
- 写一个函数能够遍历文件夹下的所有文件和文件夹
- php编程,写一个函数,能够遍历一个文件夹下的所有文件和子文件夹
- PHP遍历一个文件夹下所有文件和子文件夹的函数
- 写一个函数,能够遍历一个文件夹下的所有文件和子文件夹
- PHP遍历一个文件夹下所有文件和子文件夹的函数
- php写一个函数遍历文件夹下所有的文件和子文件
- php遍历文件夹所有文件子文件夹函数代码
- php遍历一个文件夹下的所有文件和子文件夹
- PHP遍历输出一个文件夹下的所有文件
- php遍历文件夹所有文件子文件夹函数代码
- 一个php函数,能够遍历一个文件夹下的所有文件和子文件夹 。
- php 遍历一个文件夹下的所有文件和子文件夹
- php 遍历一个文件夹下的所有文件和文件夹
- PHP遍历一个文件夹下的所有文件及创建文件夹