PHP 遍历文件实现代码


Posted in PHP onMay 04, 2011
function Files($path) 
{ 
foreach(scandir($path) as $line) 
{ 
if($line=='.'||$line=='..') continue; 
if(is_dir($path.'/'.$line)) Files($path.'/'.$line); 
else echo '<li>'.$path.'/'.$line.'</li>'; 
} 
}

PHP遍历文件及文件夹
加入给定文件夹 C:\\Windows\\AppPatch
1.首先获取这个文件夹下面的所有东西,也就是文件,文件夹,放一个数组里面
$fileArr = array(
'files' => array(), //文件放一个数组
'dirs' => array(), //文件夹放一个数组
)
2.如果存在子文件夹,遍历子文件夹,获取文件夹和文件,同样放进那个数组,如此循环,一个不漏
<?php 
$dir = 'F:\\game'; 
function read_dir_all($dir) { 
$ret = array('dirs'=>array(), 'files'=>array()); 
if ($handle = opendir($dir)) { 
while (false !== ($file = readdir($handle))) { 
if($file != '.' && $file !== '..') { 
$cur_path = $dir . DIRECTORY_SEPARATOR . $file; 
if(is_dir($cur_path)) { 
$ret['dirs'][$cur_path] = read_dir_all($cur_path); 
} else { 
$ret['files'][] = $cur_path; 
} 
} 
} 
closedir($handle); 
} 
return $ret; 
} 
$p = read_dir_all($dir); 
echo '<pre>'; 
var_dump($p); 
echo '</pre>'; 
?>

php遍历一个文件夹下的所有目录及文件
在面试中我们经常遇到这个题目:php遍历一个文件夹下的所有文件和子文件夹。

这个题目有好多种解决方法。但大致思路都一样。采用递归。

$path = './filepath'; 
function getfiles($path) 
{ 
if(!is_dir($path)) return; 
$handle = opendir($path); 
while( false !== ($file = readdir($handle))) 
{ 
if($file != '.' && $file!='..') 
{ 
$path2= $path.'/'.$file; 
if(is_dir($path2)) 
{ 
echo ' '; 
echo $file; 
getfiles($path2); 
}else 
{ 
echo ' '; 
echo $file; 
} 
} 
} 
} 
print_r( getfiles($path)); 
echo '<HR>'; 
function getdir($path) 
{ 
if(!is_dir($path)) return; 
$handle = dir($path); 
while($file=$handle->read()) 
{ 
if($file!='.' && $file!='..') 
{ 
$path2 = $path.'/'.$file; 
if(is_dir($path2)) 
{ 
echo $file."\t"; 
getdir($path2); 
}else 
{ 
echo $file.' '; 
} 
} 
} 
} 
getdir($path); 
echo '<HR>'; 
function get_dir_scandir($path){ 
$tree = array(); 
foreach(scandir($path) as $single){ 
if($single!='.' && $single!='..') 
{ 
$path2 = $path.'/'.$single; 
if(is_dir($path2)) 
{ 
echo $single."\r\n"; 
get_dir_scandir($path2); 
}else 
{ 
echo $single."\r\n"; 
} 
} 
} 
} 
get_dir_scandir($path); 
echo ' 
<HR>'; 
function get_dir_glob(){ 
$tree = array(); 
foreach(glob('./curl/*') as $single){ 
echo $single."\r\n"; 
} 
} 
get_dir_glob(); 
echo ' 
<HR>'; 
function myscandir($path) 
{ 
if(!is_dir($path)) return; 
foreach(scandir($path) as $file) 
{ 
if($file!='.' && $file!='..') 
{ 
$path2= $path.'/'.$file; 
if(is_dir($path2)) 
{ 
echo $file; 
myscandir($path2); 
}else 
{ 
echo $file.' '; 
} 
} 
} 
} 
myscandir($path); 
echo '<HR>'; 
function myglob($path) 
{ 
$path_pattern = $path.'/*'; 
foreach(glob($path_pattern) as $file) 
{ 
if(is_dir($file)) 
{ 
echo $file; 
myscandir($file); 
}else 
{ 
echo $file.' '; 
} 
} 
} 
myglob($path);
PHP 相关文章推荐
php 用checkbox一次性删除多条记录的方法
Feb 23 PHP
在php中判断一个请求是ajax请求还是普通请求的方法
Jun 28 PHP
Smarty中常用变量操作符汇总
Oct 27 PHP
PHP多线程类及用法实例
Dec 03 PHP
Centos下升级php5.2到php5.4全记录(编译安装)
Apr 03 PHP
使用XHGui来测试PHP性能的教程
Jul 03 PHP
php实现头像上传预览功能
Apr 27 PHP
Laravel使用支付宝进行支付的示例代码
Aug 16 PHP
PHP7新功能总结
Apr 14 PHP
Laravel使用原生sql语句并调用的方法
Oct 09 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
Oct 11 PHP
PHP实现单例模式建立数据库连接的方法分析
Feb 11 PHP
PHP中使用CURL伪造来路抓取页面或文件
May 04 #PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
May 04 #PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
May 04 #PHP
php join函数应用
May 04 #PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
May 04 #PHP
drupal 代码实现URL重写
May 04 #PHP
PHP操作MongoDB时的整数问题及对策说明
May 02 #PHP
You might like
用PHP控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
Linux下PHP安装mcrypt扩展模块笔记
2014/09/10 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
Jquery为a标签的href赋值实现代码
2013/05/03 Javascript
node.js实现逐行读取文件内容的代码
2014/06/27 Javascript
jQuery圆形统计图开发实例
2015/01/04 Javascript
JavaScript事件委托用法分析
2015/01/24 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
详解vue.js的devtools安装
2017/05/26 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
2018/01/02 Javascript
layui实现数据表格自定义数据项
2019/10/26 Javascript
原生js实现五子棋游戏
2020/05/28 Javascript
微信小程序实现多张图片上传功能
2020/11/18 Javascript
python重试装饰器示例
2014/02/11 Python
Python如何生成树形图案
2018/01/03 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
Python中list查询及所需时间计算操作示例
2018/06/21 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
2019/07/31 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
在OpenCV里使用Camshift算法的实现
2019/11/22 Python
Python实现动态循环输出文字功能
2020/05/07 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
python 操作excel表格的方法
2020/12/05 Python
美国南部最大的家族百货公司:Belk
2017/01/30 全球购物
10条PHP编程习惯
2014/05/26 面试题
揠苗助长教学反思
2014/02/04 职场文书
建筑安全员岗位职责
2014/03/13 职场文书
英语教育专业毕业生求职信
2014/08/28 职场文书
表扬稿范文
2015/01/17 职场文书
交通事故赔偿起诉书
2015/05/20 职场文书
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python
win10频率超出范围怎么办?win10老显示超出工作频率范围的解决方法
2022/07/07 数码科技
redis protocol通信协议及使用详解
2022/07/15 Redis