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写杨辉三角实例代码
Jul 17 PHP
php中防止伪造跨站请求的小招式
Sep 02 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
Sep 25 PHP
使用PHP函数scandir排除特定目录
Jun 12 PHP
PHP之预定义接口详解
Jul 29 PHP
php将数组存储为文本文件方法汇总
Oct 28 PHP
PHP使用fopen与file_get_contents读取文件实例分享
Mar 04 PHP
php实现的http请求封装示例
Nov 08 PHP
php使用PDO获取结果集的方法
Feb 16 PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 PHP
laravel5.6中的外键约束示例
Oct 23 PHP
Laravel中获取IP的真实地理位置
Apr 01 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统计二维数组元素个数的方法
2013/11/12 PHP
php无限遍历目录示例
2014/02/21 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
2014/06/23 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
jQuery在vs2008及js文件中的无智能提示的解决方法
2010/12/30 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
基于jquery css3实现点击动画弹出表单源码特效
2015/08/31 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
初识简单却不失优雅的Vue.js
2016/09/12 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
JavaScript适配器模式详解
2017/10/19 Javascript
Angular脚手架开发的实现步骤
2019/04/09 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
javascript设计模式 ? 迭代器模式原理与用法实例分析
2020/04/17 Javascript
使用next.js开发网址缩短服务的方法
2020/06/17 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
微信小程序实现身份证取景框拍摄
2020/09/09 Javascript
用Python编程实现语音控制电脑
2014/04/01 Python
Python实现115网盘自动下载的方法
2014/09/30 Python
python生成随机mac地址的方法
2015/03/16 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
TensorFlow模型保存和提取的方法
2018/03/08 Python
对Python发送带header的http请求方法详解
2019/01/02 Python
Python 通过截图匹配原图中的位置(opencv)实例
2019/08/27 Python
django数据模型on_delete, db_constraint的使用详解
2019/12/24 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
水上运动奥特莱斯:Wasterports Outlet
2018/08/08 全球购物
英国独特家具和家庭用品购物网站:Cuckooland
2020/08/30 全球购物
毕业生教师求职信
2013/10/20 职场文书
项目负责人岗位职责
2015/02/15 职场文书
2015年基层党支部工作总结
2015/05/21 职场文书
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL