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 相关文章推荐
深入理解:XML与对象的序列化与反序列化
Jun 08 PHP
php实例分享之二维数组排序
May 15 PHP
Yii实现多按钮保存与提交的方法
Dec 03 PHP
PHP基于工厂模式实现的计算器实例
Jul 16 PHP
PHP中SSO Cookie登录分析和实现
Nov 06 PHP
php用户注册信息验证正则表达式
Nov 12 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
Dec 21 PHP
PHP编写RESTful接口
Feb 23 PHP
Zend Framework实现多服务器共享SESSION数据的方法
Mar 22 PHP
PHP 访问数据库配置通用方法(json)
May 20 PHP
PHP 实现base64编码文件上传出现问题详解
Sep 01 PHP
PHP基于ip2long实现IP转换整形
Dec 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
无线电广播的开始
2002/01/30 无线电
实用函数8
2007/11/08 PHP
队列在编程中的实际应用(php)
2010/09/04 PHP
PHP常用的小程序代码段
2015/11/14 PHP
你不知道的文件上传漏洞php代码分析
2016/09/29 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
jQuery页面加载初始化常用的三种方法
2014/06/04 Javascript
JavaScript数组对象赋值用法实例
2015/08/04 Javascript
jquery实现九宫格大转盘抽奖
2015/11/13 Javascript
JS图片等比例缩放方法完整示例
2016/08/03 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
2016/08/15 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
2017/03/09 Javascript
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
深入理解Node内建模块和对象
2019/03/12 Javascript
vue使用自定义指令实现拖拽
2021/01/29 Javascript
javascript面向对象三大特征之封装实例详解
2019/07/24 Javascript
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
2020/04/30 jQuery
vant实现购物车功能
2020/06/29 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
JavaScript编写开发动态时钟
2020/07/29 Javascript
[02:22]2018DOTA2亚洲邀请赛VG赛前采访
2018/04/03 DOTA
Python常用的日期时间处理方法示例
2015/02/08 Python
python获得两个数组交集、并集、差集的方法
2015/03/27 Python
python3设计模式之简单工厂模式
2017/10/17 Python
python模块smtplib学习
2018/05/22 Python
django项目中新增app的2种实现方法
2020/04/01 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
css3动画效果抖动解决方法
2018/09/03 HTML / CSS
英国建筑用品在线:Building Supplies Online(BSO)
2018/04/30 全球购物
服装机修工岗位职责
2013/12/26 职场文书
幼儿园教师请假制度
2014/01/16 职场文书
有创意的广告词
2014/03/18 职场文书
大学生团员个人总结
2015/02/14 职场文书
裁员通知
2015/04/25 职场文书
Python数组变形的几种实现方法
2022/05/30 Python
mysql sock 文件解析及作用讲解
2022/07/15 MySQL