首页 > PHP教程 > php开发知识文章

php 遍历目录文件或文件夹的方法

本文主要介绍了使用php写一个遍历指定文件夹下所有文件和文件夹的方法,欢迎大家的学习。

我们在写程序的时候经常会遇到,遍历目录或遍历目录下指定类型的文件。

PHP本身提供了很多有用的函数,正确地使用它们,就会写出不错的程序。

使用scandir函数

//列出指定目录下所有的文件,使用递归
function getAll($path){
foreach(scandir($path) as $va)
{
if($va=='.'||$va=='..') continue;
if(is_dir($path.'/'.$va))
{
getAll($path.'/'.$va);
} else {
echo $path.'/'.$va.'<br />';
}
}
}

//列出当前目录下所有的文件
getAll(__DIR__);

scandir:返回指定目录下所有的文件和目录组成的数组

使用scandir函数

 

使用glob函数

glob()函数有2个参数,第2个参数可选的,glob()返回的内容中已经过滤掉了'.'和'..',其中*表示遍历目录下所有文件。

相应的,如果改为*.php,则会遍历目录下所的php文件

使用glob函数

/**
* 获取指定目录所有文件
*/
function get_all_files($path)
{
$list = array();
foreach (glob($path . '/*') as $item) {
if (is_dir($item)) {
$list = array_merge($list, get_all_files($item));
} else {
$list[] = $item;
}
}
return $list;
}

print_r(get_all_files(__DIR__));

/**
* 获取指定目录所有文件,返回一层目录文件
*/
function get_my_files($path)
{
$list = array();
foreach (glob($path . '/*') as $item) {
if (is_dir($item)) {
$list[] = $item;
}
}
return $list;
}
print_r(get_my_files(__DIR__));

/**
* 获取指定目录所有文件,带有文件创建时间
*/
function get_all_files_time($path)
{
clearstatcache();
$list = array();
foreach (glob($path . '/*') as $item) {
if (is_dir($item)) {
$list = array_merge($list, get_all_files_time($item));
} else {
$list[$item] = date("Y-m-d H:i:s", fileatime($item));
//fileatime 访问时间 filemtime 修改时间
}
}
return $list;
}
print_r(get_all_files_time(__DIR__));

以上就是使用php写一个能遍历指定文件夹下所有文件和文件夹的方法的全部内容,希望大家有所学习收获。

关闭
感谢您的支持,我会继续努力!
扫码打赏,建议金额1-10元


提醒:打赏金额将直接进入对方账号,无法退款,请您谨慎操作。