这个函数是别人写的,我整理了一下,加了很多注释。
函数说明:
本函数执行过程:
检测目录->打开目录->读取目录->去除特殊目录->判断子目录里是否还存在文件->如是,再次调用->如不是,将文件条目放入数组->关闭文件夹->返回文件夹条目。
<?php
/**
* 将读取到的目录以数组的形式展现出来
* @return array
* opendir() 函数打开一个目录句柄,可由 closedir(),readdir() 和 rewinddir() 使用。
* is_dir() 函数检查指定的文件是否是目录。
* readdir() 函数返回由 opendir() 打开的目录句柄中的条目。
* @param array $files 所有的文件条目的存放数组
* @param string $file 返回的文件条目
* @param string $dir 文件的路径
* @param resource $handle 打开的文件目录句柄
*/
function my_scandir($dir){
//定义一个数组
$files=array();
//检测是否存在文件
if(is_dir($dir)){
//打开目录
if($handle=opendir($dir)) {
//返回当前文件的条目
while(($file=readdir($handle))!==false){
//去除特殊目录
if($file!="." && $file!=".."){
//判断子目录是否还存在子目录
if(is_dir($dir."/".$file)){
//递归调用本函数,再次获取目录
$files[$file]=my_scandir($dir."/".$file);
}else {
//获取目录数组
$files[]=$dir."/".$file;
}
}
}
//关闭文件夹
closedir($handle);
//返回文件夹数组
return $files;
}
}
}
echo "<pre>";
print_r(my_scandir("你电脑里面可执行的目录"));