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 相关文章推荐
UCenter Home二次开发指南
May 28 PHP
php中3种方法统计字符串中每种字符的个数并排序
Aug 27 PHP
基于flush()不能按顺序输出时的解决办法
Jun 29 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
CentOS6.5 编译安装lnmp环境
Dec 21 PHP
深入理解PHP内核(二)之SAPI探究
Nov 10 PHP
功能强大的PHP发邮件类
Aug 29 PHP
PHP文件操作实例总结【文件上传、下载、分页】
Dec 08 PHP
php的优点总结 php有哪些优点
Jul 19 PHP
php数组指针函数功能及用法示例
Feb 11 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
May 01 PHP
PHP笛卡尔积实现原理及代码实例
Dec 09 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脚本的10个技巧(4)
2006/10/09 PHP
php array_walk() 数组函数
2011/07/12 PHP
详解WordPress中简码格式标签编写的基本方法
2015/12/22 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
2016/07/14 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
2019/03/14 PHP
jscript之Open an Excel Spreadsheet
2007/06/13 Javascript
js 通过html()及text()方法获取并设置p标签的显示值
2014/05/14 Javascript
JavaScript实现Flash炫光波动特效
2015/05/14 Javascript
js中substring和substr两者区别和使用方法
2015/11/09 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
利用PM2部署node.js项目的方法教程
2017/05/10 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
2020/08/09 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
2018/01/23 jQuery
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
2019/05/14 Javascript
token 机制和实现方式
2020/12/15 Javascript
[01:10:02]IG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
Swift 3.0在集合类数据结构上的一些新变化总结
2016/07/11 Python
python去除空格和换行符的实现方法(推荐)
2017/01/04 Python
python通过pip更新所有已安装的包实现方法
2017/05/19 Python
Python 快速实现CLI 应用程序的脚手架
2017/12/05 Python
Python数据拟合与广义线性回归算法学习
2017/12/22 Python
python3使用SMTP发送简单文本邮件
2018/06/19 Python
pygame实现成语填空游戏
2019/10/29 Python
python中np是做什么的
2020/07/21 Python
python爬取天气数据的实例详解
2020/11/20 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
汽修专业自荐信
2014/07/07 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
二审答辩状范文
2015/05/22 职场文书
行政处罚告知书
2015/07/01 职场文书
Oracle 多表查询基本语法实例
2022/04/18 Oracle