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实现Ftp用户的在线管理
Feb 16 PHP
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
Jun 01 PHP
php取整函数ceil,floo,round的用法及介绍
Aug 31 PHP
分享PHP header函数使用教程
Sep 05 PHP
php检测文件编码的方法示例
Apr 25 PHP
php封装的连接Mysql类及用法分析
Dec 10 PHP
Yii rules常用规则示例
Mar 15 PHP
php传值方式和ajax的验证功能
Mar 27 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
PHP抽象类基本用法示例
Dec 28 PHP
php和html的区别点详细总结
Sep 24 PHP
laravel实现查询最后执行的一条sql语句的方法
Oct 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日期时间函数的高级应用技巧
2009/05/16 PHP
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
小谈php正则提取图片地址
2014/03/27 PHP
PHP连接sql server 2005环境配置及问题解决
2014/08/08 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
js给页面加style无效果的解决方法
2014/01/20 Javascript
一些老手都不一定知道的JavaScript技巧
2014/05/06 Javascript
JsRender for index循环索引用法详解
2014/10/31 Javascript
js打造数组转json函数
2015/01/14 Javascript
JS动态修改图片的URL(src)的方法
2015/04/01 Javascript
javascript实现获取服务器时间
2015/05/19 Javascript
jquery.fastLiveFilter.js实现输入自动过滤的方法
2015/08/11 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
利用Bootstrap实现表格复选框checkbox全选
2016/12/21 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
2017/01/05 Javascript
纯js实现倒计时功能
2017/01/06 Javascript
mongoose更新对象的两种方法示例比较
2017/12/19 Javascript
JS装饰器函数用法总结
2018/04/21 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
[02:16]卖萌的僵尸 DOTA2神话信使飞僵小宝来袭
2014/03/24 DOTA
python 不同方式读取文件速度不同的实例
2018/11/09 Python
Python多进程写入同一文件的方法
2019/01/14 Python
python3的print()函数的用法图文讲解
2019/07/16 Python
python+tkinter实现学生管理系统
2019/08/20 Python
uniapp+Html5端实现PC端适配
2020/07/15 HTML / CSS
怎样写好自我鉴定
2013/12/04 职场文书
面包店的创业计划书范文
2014/01/16 职场文书
党支部承诺书
2015/01/20 职场文书
北京天坛导游词
2015/02/12 职场文书
公司安全管理制度范本
2015/08/05 职场文书