PHP递归获取目录内容readDir,递归删除rmdir

来源:互联网 发布:双色球关注倾向数据 编辑:程序博客网 时间:2024/06/04 22:46
<pre name="code" class="php"><?php/** * @param $path 需要读取的目录内容 */function readDirs($path, $deep=0) {//打开,读取$handle = openDir($path);//循环获得文件while(false !== $file = readDir($handle)) {//是不是伪目录 ., ..,是的话不处理if ($file == '.' || $file == '..') continue;echo str_repeat(' ', $deep*4), $file,'<br>';//判断该文件是否为目录if(is_dir($path . '/' . $file)) {//是目录,递归的获取readDirs($path . '/' . $file, $deep+1);}}closeDir($handle);}


将获取的目录保存起来,以便之后使用代码如下

/** * @param $path 需要读取的目录内容 * * @return array 很多维数组 */function readDirs($path, $deep=0) {$children = array();//打开,读取$handle = openDir($path);//循环获得文件while(false !== $file = readDir($handle)) {//是不是伪目录 ., ..,是的话不处理if ($file == '.' || $file == '..') continue;//记录当前文件信息的数组$file_info['name']=$file;//文件名//判断该文件是否为目录if(is_dir($path . '/' . $file)) {//是目录,递归的获取$file_info['type'] = 'dir';$file_info['children'] = readDirs($path . '/' . $file, $deep+1);} else {$file_info['type'] = 'file';}$children[] = $file_info;}closeDir($handle);return $children;}

/** * @param $path 删除需要目录 */function rmDirs($path) {//打开,读取$handle = openDir($path);//循环获得文件while(false !== $file = readDir($handle)) {//是不是伪目录 ., ..,是的话不处理if ($file == '.' || $file == '..') continue;//判断该文件是否为目录if(is_dir($path . '/' . $file)) {//是目录,递归的获取rmDirs($path . '/' . $file);} else {//文件unlink($path . '/' . $file);//unlink删除文件}}closeDir($handle);return rmdir($path);}

0 0