很多站长朋友们都不太清楚递归获取目录php,今天小编就来给大家整理递归获取目录php,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 PHP 如何递归算法 2、 php递归获取目录内文件封装类分享 3、 php递归检索目录如何有返回值 4、 关于php递归函数创建级联目录的困惑 PHP 如何递归算法一般来说,类似这种遍历输出所有文件,大多采用递归算法,这样程序显得比较简洁,其实际执行效率来说,并不见得比其他方法更好。
以下是示例:
function file_list($path)
{
if ($handle = opendir($path))//打开路径成功
{
while (false !== ($file = readdir($handle)))//循环读取目录中的文件名并赋值给$file
{
if ($file != "." $file != "..")//排除当前路径和前一路径
{
if (is_dir($path."/".$file))
{
// echo $path.": ".$file."<br>";//去掉此行显示的是所有的非目录文件
file_list($path."/".$file);
}
else
{
echo $path.": ".$file."<br>";
}
}
}
}
}
php递归获取目录内文件封装类分享php递归获取目录内文件封装类分享,可以递归子目录
代码如下:
代码如下:
function
readFileFromDir($dir)
{
if
(!is_dir($dir))
{
return
false;
}
//打开目录
$handle
=
opendir($dir);
while
(($file
=
readdir($handle))
!==
false)
{
//排除掉当前目录和上一个目录
if
($file
==
"."
||
$file
==
"..")
{
continue;
}
$file
=
$dir
.
DIRECTORY_SEPARATOR
.
$file;
//如果是文件就打印出来,否则递归调用
if
(is_file($file))
{
$file
.
'<br
/>';
}
elseif
(is_dir($file))
{
readFileFromDir($file);
}
}
}
调用方式:
代码如下:
$dir
=
'/home/www/test';
readFileFromDir($dir);
查看php手册的话,还有一个方法scandir也可以使用,不过这个方法会一次性获取单级目录下的所有文件,存放到数组里,如果目录里的文件比较多的话,会卡。
php递归检索目录如何有返回值function readFileFromDir($dir)
{
static $deepth=0;
if(!is_dir($dir)){
return false;
}else{
$deepth++;
}
$handle=opendir($dir); //打开目录
while(($file=readdir($handle))!==false)
{
if($file=='.'||$file=='..')
{
continue;
}
$file=$dir.DIRECTORY_SEPARATOR.$file;
if(is_file($file)) //是文件就输出
{
print str_repeat(' ',$deepth).$file.'<br/>';
}
elseif(is_dir($file))
{
readFileFromDir($file); //递归查询
}
}
closedir($dir); //关闭目录
$deepth--;
return ;
}
$dir='/home/renbiao/图片';
readFileFromDir($dir);
关于php递归函数创建级联目录的困惑mkdir1刚进去就是判断$dir存不存在,a/b/c/d/e说白了就是判断有没有e文件夹
如果没有 继续dirname($dir) 判断a/b/c/d路径的d文件夹有没有
如果没有 继续dirname($dir) 判断a/b/c路径的c文件夹有没有
依此类推直到
dirname($dir) 判断a路径的时候 不存在执行当前递归层的mkdir($dir) 创建a
存在则return,然后执行当前递归层上一级的mkdir($dir) 创建a/b
之后继续上一级的mkdir($dir) 创建a/b/c
直到创建完a/b/c/d/e 递归结束
关于递归获取目录php的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于递归获取目录php php递归函数的例子的详细内容...