找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 57|回复: 0
打印 上一主题 下一主题

php遍历目录与文件夹的多种方法详解

[复制链接]

2588

主题

2588

帖子

7694

积分

论坛元老

Rank: 8Rank: 8

积分
7694
跳转到指定楼层
楼主
发表于 2018-2-14 06:01:55 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

            遍历目录或遍历目录下指定类型的文件,这是每一个童鞋在写程序的时候难免会用到的。PHP本身也提供了很多灰常有用的函数,正确地使用它们,不会有错滴。
下面就我个人学习过程中的一些总结,希望对想学PHP的童鞋有所帮助。
本函数可以列出指定目录下所有的文件(包括子目录下的)
[U]复制代码[/U] 代码如下:
function getfiles($path){
foreach(scandir($path) as $afile)
{
if($afile=='.'||$afile=='..') continue;
if(is_dir($path.'/'.$afile))
{
getfiles($path.'/'.$afile);
} else {
echo $path.'/'.$afile.'
';
}
}
} //简单的demo,列出当前目录下所有的文件
getfiles(__DIR__);

scandir() 是返回指定目录下所有的文件和目录组成的数组,在PHP中,还提供了一个灰常强大的函数glob(),glob()有2个参数,至于第2个参数是可选的,稍后再讲。 直接来看,用glob()怎么遍历目录的。
可以看出,glob()返回的内容中已经过滤掉了'.'和'..',其中*表示遍历目录下所有文件。相应的,如果改为*.txt,则会遍历目录下所的txt文件。是不是很方便呢?它的方便之处可不止这一点,据元芳说,这里面还藏着一个天大的秘密,是什么呢?以后再说,有兴趣的话,可以给我留言交流。
[U]复制代码[/U] 代码如下:
function getfiles($path){
foreach(glob($path) as $afile){
if(is_dir($afile))
{ getfiles($afile.'/*'); } else { echo $afile.'
'; }
}
} //简单的demo,列出当前目录下所有的文件
getfiles(__DIR__);0

既然说用 *.txt,就会遍历目录下所的txt文件,那如果我想让它同时遍历某几种格式的文件呢?怎么办?肯定有童鞋想到用数组了,然后很快的写出来替换进去{*.txt,*.jpg,*.zip,...},当然也很快地发现,程序返回false,什么都得不到。不要失望,这涉及到了刚才所说的第2个可选参数,这个参数是用来改变glob的行为的,具体都有些什么,可以查阅PHP手册,这里不多讲,只说一个GLOB_BRACE,这是用来扩充 {a,b,c,...} 来匹配 'a','b' 或 'c',...的。用法如下:foreach(glob($path.'/{*.txt,*.jpg,*.zip,...}', GLOB_BRACE) as $fileName){...}
至于完整的遍历目录下所有的指定文件类型函数,我们可以看下面实例
遍历文件夹及子文件夹所有文件
[U]复制代码[/U] 代码如下:
   
        
   


一些常用的实例
[U]复制代码[/U] 代码如下:

用了这段代码遍历所有文件,帮我把所有文件名存为一个数组。
[U]复制代码[/U] 代码如下:
");
print_r($array_file);
print_r("");
?>
            
            
您可能感兴趣的文章:
  • PHP读取目录下所有文件的代码
  • php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
  • PHP 创建文件(文件夹)以及目录操作代码
  • PHP chmod 函数与批量修改文件目录权限
  • PHP获取文件绝对路径的代码(上一级目录)
  • 使用PHP遍历文件夹与子目录的函数代码
  • PHP中文件读、写、删的操作(PHP中对文件和目录操作)
  • PHP判断文件是否存在、是否可读、目录是否存在的代码
  • php中检查文件或目录是否存在的代码小结
  • PHP遍历某个目录下的所有文件和子文件夹的实现代码
  • php读取目录及子目录下所有文件名的方法
  • php读取出一个文件夹及其子文件夹下所有文件的方法示例
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端