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 相关文章推荐
FCKeditor添加自定义按钮
Mar 27 PHP
php将时间差转换为字符串提示
Sep 07 PHP
php 生成唯一id的几种解决方法
Mar 08 PHP
微信公众平台接口开发入门示例
Dec 24 PHP
php导入excel文件到mysql数据库的方法
Jan 14 PHP
php面向对象与面向过程两种方法给图片添加文字水印
Aug 26 PHP
PHP常见漏洞攻击分析
Feb 21 PHP
CI映射(加载)数据到view层的方法
Mar 28 PHP
php简单截取字符串代码示例
Oct 19 PHP
PHP版微信小店接口开发实例
Nov 12 PHP
php的laravel框架快速集成微信登录的方法
Dec 12 PHP
PHP实现爬虫爬取图片代码实例
Mar 03 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实现多级树型菜单
2006/10/09 PHP
PHP中redis的用法深入解析
2014/02/20 PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
2014/11/19 PHP
用php代码限制国内IP访问我们网站
2015/09/26 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
php+resumablejs实现的分块上传 断点续传功能示例
2017/04/18 PHP
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
2010/01/22 Javascript
JS解决ie6下png透明的方法实例
2013/08/02 Javascript
关于jquery中全局函数each使用介绍
2013/12/10 Javascript
document.compatMode的CSS1compat使用介绍
2014/04/03 Javascript
超链接的禁用属性Disabled使用示例
2014/07/31 Javascript
基于BootStarp的Dailog
2016/04/28 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
2016/05/27 Javascript
如何用js实现鼠标向上滚动时浮动导航
2016/07/18 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
2016/08/05 Javascript
JavaScript中 this 指向问题深度解析
2017/02/21 Javascript
Vue通过input筛选数据
2020/10/26 Javascript
vue组件间通信子与父详解(二)
2017/11/07 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
vue 检测用户上传图片宽高的方法
2020/02/06 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
Python输出各行命令详解
2018/02/01 Python
Python延时操作实现方法示例
2018/08/14 Python
利用python numpy+matplotlib绘制股票k线图的方法
2019/06/26 Python
Python3监控疫情的完整代码
2020/02/20 Python
树莓派升级python的具体步骤
2020/07/05 Python
高考自主招生自荐信
2013/10/20 职场文书
机械设计及其自动化求职推荐信
2014/02/17 职场文书
公司户外活动总结
2014/07/04 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书
2016五一手机促销广告语
2016/01/28 职场文书
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers
Pandas实现DataFrame的简单运算、统计与排序
2022/03/31 Python