php递归获取目录内文件(包含子目录)封装类分享


Posted in PHP onDecember 25, 2013

代码如下:

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)) {
            print $file . '<br />';
        } elseif (is_dir($file)) {
            readFileFromDir($file);
        }
    }
}

调用方式:

$dir = '/home/www/test'; 
readFileFromDir($dir);

查看php手册的话,还有一个方法scandir也可以使用,不过这个方法会一次性获取单级目录下的所有文件,存放到数组里,如果目录里的文件比较多的话,会卡。

PHP 相关文章推荐
实时抓取YAHOO股票报价的代码
Oct 09 PHP
PHP中array_slice函数用法实例详解
Nov 25 PHP
ThinkPHP实现ajax仿官网搜索功能实例
Dec 02 PHP
php获取QQ头像并显示的方法
Dec 23 PHP
深入浅析PHP7.0新特征(五大新特征)
Oct 29 PHP
PHP文件缓存smarty模板应用实例分析
Feb 26 PHP
PHP实现导出excel数据的类库用法示例
Oct 15 PHP
php微信公众平台开发(一) 配置接口
Dec 06 PHP
php简单读取.vcf格式文件的方法示例
Sep 02 PHP
Laravel框架处理用户的请求操作详解
Dec 20 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
Mar 23 PHP
phpstudy2020搭建站点的实现示例
Oct 30 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
Dec 25 #PHP
zend framework文件上传功能实例代码
Dec 25 #PHP
php文字水印和php图片水印实现代码(二种加水印方法)
Dec 25 #PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
Dec 25 #PHP
php生成缩略图填充白边(等比缩略图方案)
Dec 25 #PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
Dec 25 #PHP
php使用strtotime和date函数判断日期是否有效代码分享
Dec 25 #PHP
You might like
PHP中比较两个字符串找出第一个不同字符位置例子
2014/04/08 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
2017/08/03 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
可以支持多中格式的JS键盘
2007/05/02 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
快速学习jQuery插件 Cookie插件使用方法
2015/12/01 Javascript
Bootstrap 粘页脚效果
2016/03/28 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
JS实现复制功能
2017/03/01 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
vue配置多页面的实现方法
2018/05/22 Javascript
iphone刘海屏页面适配方法
2019/05/07 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
原生JS利用transform实现banner的无限滚动示例代码
2020/06/15 Javascript
如何基于jQuery实现五角星评分
2020/09/02 jQuery
vue+elementUI实现简单日历功能
2020/09/24 Javascript
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
[01:05:59]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
Python Matplotlib库入门指南
2015/05/18 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
Python3.7 pyodbc完美配置访问access数据库
2019/10/03 Python
利用python中集合的唯一性实现去重
2020/02/11 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
西班牙第一的网上药房:PromoFarma.com
2017/04/17 全球购物
汉森冲浪板:Hansen Surfboards
2018/05/19 全球购物
Lookfantastic意大利官网:英国知名美妆购物网站
2019/05/31 全球购物
俄罗斯最大的在线手表商店:Bestwatch.ru
2020/01/11 全球购物
澳洲CFL商城:CHEMIST FOR LESS(中文)
2021/02/28 全球购物
CNC数控操作工岗位职责
2013/11/19 职场文书
《九色鹿》教学反思
2014/02/27 职场文书
2014和解协议书范文
2014/09/15 职场文书
教师党员批评与自我批评发言稿
2014/10/15 职场文书
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python