分享两种PHP 读取文件夹下文件文件列表的方法
一、opendir + readdir +while循环
先将目标文件夹读取为resource资源类型,没错,就是那个PHP八大数据类型中的特殊数据类型。之后再对这些资源进行读取、循环输出就可以了。
这一种方法是最常用的,上代码:
$handle=opendir('./thinkphp_5.0.23');
while($dir = readdir($handle))
{
//过滤当前文件夹和父文件
if($dir == '.' || $dir == '..' )
{
continue;
}
echo '<br />'.$dir;
}
这样tp5的文件夹内容就被我们循环出来了:
二、dir + read + while
先由dir读取目标文件夹路径,创建出一个Directory 类,然后调用该类中的read方法,最后再由while循环输出。
我们先来看看看dir创建出的是什么东西:
$directory = dir('./thinkphp_5.0.23');
var_dump($directory);
我们可以看到输出为 Directory 对象 第一个属性为读取的目录,第二个属性为读取的资源型数值,这里可以第一种中的readdir进行处理:
while($dir = readdir($directory->handle))
{
//过滤当前文件夹和父文件
if($dir == '.' || $dir == '..' )
{
continue;
}
echo '<br />'.$dir;
}
但这是不是和一方法太类似了呢,我们刚才一直提到Directory 类,现在要派上用场了,我们来看下PHP 文档里面的Directory 包含哪些东西:
这里用到的就是read 方法了,上代码:
$directory=dir('./thinkphp_5.0.23');
while($dir = $directory->read())
{
//过滤当前文件夹和父文件
if($dir == '.' || $dir == '..' )
{
continue;
}
echo '<br />'.$dir;
}