很多站长朋友们都不太清楚php递归查看目录,今天小编就来给大家整理php递归查看目录,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php 递归寻找文件 2、 php列出目录下所有文件(包括子目录) 3、 PHP 列出当前目录下所有文件(自身别列出来) 4、 php如何实现递归遍历文件目录 5、 php递归获取目录内文件封装类分享 6、 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
/**
* Goofy 2011-11-30
* getDir()去文件夹列表,getFile()去对应文件夹下面的文件列表,二者的区别在于判断有没有“.”后缀的文件,其他都一样
*/
//获取文件目录列表,该方法返回数组
function getDir($dir) {
$dirArray[]=NULL;
if (false != ($handle = opendir ( $dir ))) {
$i=0;
while ( false !== ($file = readdir ( $handle )) ) {
//去掉"“.”、“..”以及带“.xxx”后缀的文件
if ($file != "." $file != ".."!strpos($file,".")) {
$dirArray[$i]=$file;
$i++;
}
}
//关闭句柄
closedir ( $handle );
}
return $dirArray;
}
//获取文件列表
function getFile($dir) {
$fileArray[]=NULL;
if (false != ($handle = opendir ( $dir ))) {
$i=0;
while ( false !== ($file = readdir ( $handle )) ) {
//去掉"“.”、“..”以及带“.xxx”后缀的文件
if ($file != "." $file != ".."strpos($file,".")) {
$fileArray[$i]="./imageroot/current/".$file;
if($i==100){
break;
}
$i++;
}
}
//关闭句柄
closedir ( $handle );
}
return $fileArray;
}
//调用方法getDir("./dir")……
?>
PHP 列出当前目录下所有文件(自身别列出来)1、列出当前目录的文件、文件夹完整路径
ls
-1
|awk
i$0}'
i=`pwd`'/'
(注意:这里
ls
后面那是个数字
1
而不是字母
l)
2、列出当前目录及子目录的文件、文件夹完整路径
ls
-r
|awk
i$0}'
i=`pwd`'/'
2b)
列出当前目录及子目录下的文件夹完整路径
ls
-fr
|
grep
/$
|
sed
"s:^:`pwd`/:"
3、用find实现,好像运行要慢些
find
/
-name
"*.*"
-exec
ls
{}
\;
4、递归列出当前目录及子目录名称
ls
-fr
|
grep
/$
5、递归列出当前目录及子目录名称,包括相关属性
ls
-lr
|
grep
"^d"
#
drwxr-xr-x
3
idea
idea
4096
aug
2
2009
images
6、只列出当前目录下的子目录
用ls只列出子目录
ls
-d
*/
php如何实现递归遍历文件目录只需要一个递归函数:
function Folders($folder) {
if (!is_dir($folder)) return false;
foreach (scandir($folder) AS $f) {
if ($f == '.' or $f == '..') continue;
echo $f, '<hr/>';
Folders($folder . '/' . $f); // 递归调用
}
}
Folders('Test');
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 递归遍历目录代码调试文件系统中,"."代表此目录自身,".."代表上级目录。scandir取目录时,也会把这这两个特殊目录取出来,但一般情况下不用处理,只需要处理正常目录,所以要在if中排除掉。
关于php递归查看目录的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php递归查看目录 php递归删除目录的详细内容...