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生成带有雪花背景的验证码
Oct 09 PHP
用PHP和ACCESS写聊天室(二)
Oct 09 PHP
PHP 图片上传代码
Sep 13 PHP
php中文字符串截取方法实例总结
Sep 30 PHP
PHP使用递归生成文章树
Apr 21 PHP
正确的PHP匹配UTF-8中文的正则表达式
May 13 PHP
PHP获取指定月份第一天和最后一天的方法
Jul 18 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
Jul 31 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
php微信公众号开发之答题连闯三关
Oct 20 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
Dec 21 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
Sep 03 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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
深入解析Session是否必须依赖Cookie
2013/08/02 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
php 常用的系统函数
2017/02/07 PHP
PHP内置函数生成随机数实例
2019/01/18 PHP
JSON JQUERY模板实现说明
2010/07/03 Javascript
javascript设计模式 接口介绍
2012/07/24 Javascript
js快速排序的实现代码
2013/12/08 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
JQuery仿小米手机抢购页面倒计时效果
2014/12/16 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
浅谈React高阶组件
2018/03/28 Javascript
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python正则表达式介绍
2012/08/06 Python
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
Python使用Phantomjs截屏网页的方法
2018/05/17 Python
基于Python实现全自动下载抖音视频
2020/11/06 Python
Python实现王者荣耀自动刷金币的完整步骤
2021/01/22 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
微信浏览器左上角返回按钮拦截功能
2017/11/21 HTML / CSS
alice McCALL官网:澳大利亚时尚品牌
2020/11/16 全球购物
单位成立周年感言
2014/01/26 职场文书
岗位聘任书范文
2014/03/29 职场文书
实习指导老师评语
2014/04/26 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
餐饮周年庆活动方案
2014/08/14 职场文书
食品安全承诺书范文
2014/08/29 职场文书
党员干部四风问题整改措施思想汇报
2014/10/12 职场文书
签订劳动合同通知书
2015/04/16 职场文书
导游词之西递宏村
2019/12/10 职场文书
SQL Server2019数据库之简单子查询的具有方法
2021/04/27 SQL Server
zabbix监控mysql的实例方法
2021/06/02 MySQL