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 相关文章推荐
Content-type 的说明
Oct 09 PHP
一个可以删除字符串中HTML标记的PHP函数
Oct 09 PHP
php中文字符截取防乱码
Mar 28 PHP
常用的php对象类型判断
Aug 27 PHP
php实现图片局部打马赛克的方法
Feb 11 PHP
php发送短信验证码完成注册功能
Nov 24 PHP
PHP实现二维数组根据key进行排序的方法
Dec 30 PHP
php基于dom实现读取图书xml格式数据的方法
Feb 03 PHP
PHP示例演示发送邮件给某个邮箱
Apr 03 PHP
Laravel如何同时连接多个数据库详解
Aug 13 PHP
Laravel框架Eloquent ORM修改数据操作示例
Dec 03 PHP
PHP实现页面静态化深入讲解
Mar 04 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
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
2013/10/24 Javascript
根据表格中的某一列进行排序的javascript代码
2013/11/29 Javascript
前端轻量级MVC框架CanJS详解
2014/09/26 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
2016/06/03 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
JS实现评价的星星功能
2017/08/20 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
详解封装基础的angular4的request请求方法
2018/06/05 Javascript
详解webpack4升级指南以及从webpack3.x迁移
2018/06/12 Javascript
layui中table表头样式修改方法
2018/08/15 Javascript
vue实例中data使用return包裹的方法
2018/08/27 Javascript
JavaScript中filter的用法实例分析
2019/02/27 Javascript
Python Web框架Pylons中使用MongoDB的例子
2013/12/03 Python
详解Django中Request对象的相关用法
2015/07/17 Python
python实现Floyd算法
2018/01/03 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
2018/02/26 Python
基于python 二维数组及画图的实例详解
2018/04/03 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
百思买美国官网:Best Buy
2016/07/28 全球购物
百丽国际旗下购物网站:优购
2017/02/28 全球购物
菲律宾酒店预订网站:Hotels.com菲律宾
2017/07/12 全球购物
毕业生求职简历中的自我评价
2013/10/18 职场文书
电子商务自荐书范文
2014/01/04 职场文书
上课玩手机检讨书
2014/02/08 职场文书
地震捐款倡议书
2014/08/29 职场文书
2014年民主评议党员个人总结
2014/09/24 职场文书
代收款委托书范本
2014/10/01 职场文书
优秀班主任推荐材料
2014/12/17 职场文书
职工宿舍管理制度
2015/08/05 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书
Python办公自动化之教你如何用Python将任意文件转为PDF格式
2021/06/28 Python
MySQL索引失效十种场景与优化方案
2023/05/08 MySQL