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 30 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
May 15 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
Nov 13 PHP
迁移PHP版本到PHP7
Feb 06 PHP
PHP闭包函数详解
Feb 13 PHP
PHP实现多图上传(结合uploadify插件)思路分析
Nov 30 PHP
PHP手机号中间四位用星号*代替显示的实例
Jun 02 PHP
由php中字符offset特征造成的绕过漏洞详解
Jul 07 PHP
php命令行写shell实例详解
Jul 19 PHP
php微信公众号开发之快递查询
Oct 20 PHP
PHP defined()函数的使用图文详解
Jul 20 PHP
详解Laravel设置多态关系模型别名的方式
Oct 17 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 替换模板变量实现步骤
2009/08/24 PHP
PHP+XML 制作简单的留言本 图文教程
2009/11/02 PHP
PHP图片裁剪函数(保持图像不变形)
2014/05/04 PHP
PHP生成plist数据的方法
2015/06/16 PHP
JS宝典学习笔记(下)
2007/01/10 Javascript
原生javascript实现图片轮播效果代码
2010/09/03 Javascript
jquery中animate动画积累的解决方法
2013/10/05 Javascript
jquery简单实现滚动条下拉DIV固定在头部不动
2013/11/25 Javascript
node.js中的fs.chmodSync方法使用说明
2014/12/18 Javascript
JavaScript数据类型之基本类型和引用类型的值
2015/04/01 Javascript
微信小程序-消息提示框实例
2016/11/24 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
react路由配置方式详解
2017/08/07 Javascript
简单的三步vuex入门
2018/05/20 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
vue实现日历表格(element-ui)
2020/09/24 Javascript
python下实现二叉堆以及堆排序的示例
2017/09/29 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
Python实用技巧之利用元组代替字典并为元组元素命名
2018/07/11 Python
python实现QQ批量登录功能
2019/06/19 Python
C语言50道问题
2014/10/23 面试题
编码实现字符串转整型的函数
2012/06/02 面试题
GWT的应用有哪两种部署模式
2012/12/21 面试题
计算机大学生的自我评价
2013/10/15 职场文书
公司中层干部的自我评价分享
2014/03/01 职场文书
雷人标语集锦
2014/06/19 职场文书
法学求职信
2014/06/22 职场文书
工作说明书格式
2014/07/29 职场文书
员工保密协议书
2014/09/27 职场文书
县政协领导班子群众路线教育实践活动四风问题整改方案
2014/10/26 职场文书
2014年乡镇卫生院工作总结
2014/11/24 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
2016年大学迎新工作总结
2015/10/14 职场文书
vue3中provide && inject的使用
2021/07/01 Vue.js
Python中super().__init__()测试以及理解
2021/12/06 Python