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提取数据库内容中的图片地址并循环输出
Mar 21 PHP
shopex主机报错误请求解决方案(No such file or directory)
Dec 27 PHP
php中设置index.php文件为只读的方法
Feb 06 PHP
PHP rawurlencode与urlencode函数的深入分析
Jun 08 PHP
Apache实现Web Server负载均衡详解(不考虑Session版)
Jul 05 PHP
分享一个php 的异常处理程序
Jun 22 PHP
php错误日志简单配置方法
Jul 11 PHP
php封装的图片(缩略图)处理类完整实例
Oct 19 PHP
Laravel中的Auth模块详解
Aug 17 PHP
PHP实现简单计算器小程序
Aug 28 PHP
php中isset与empty函数的困惑与用法分析
Jul 05 PHP
laravel实现上传图片的两种方式小结
Oct 12 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/06/25 PHP
php多文件上传实现代码
2014/02/20 PHP
PHP中的output_buffering详细介绍
2014/09/27 PHP
PHP的引用详解
2015/02/22 PHP
thinkPHP查询方式小结
2016/01/09 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
2016/12/24 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
jquery 插件开发方法小结
2009/10/23 Javascript
jQuery bxCarousel实现图片滚动切换效果示例代码
2013/05/15 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
jQuery插件实现无缝滚动特效
2015/11/24 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
2018/11/30 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
详解Vue之计算属性
2020/06/20 Javascript
MySQL适配器PyMySQL详解
2017/09/20 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
python批量将excel内容进行翻译写入功能
2019/10/10 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
2020/01/10 Python
Python @property及getter setter原理详解
2020/03/31 Python
在python中对于bool布尔值的取反操作
2020/12/11 Python
python中封包建立过程实例
2021/02/18 Python
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
AmazeUI 单选框和多选框的实现示例
2020/08/18 HTML / CSS
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
办公室助理岗位职责
2013/12/25 职场文书
演讲稿格式
2014/04/30 职场文书
大雁塔英文导游词
2015/02/10 职场文书
杭州黄龙洞导游词
2015/02/10 职场文书
《草船借箭》教学反思
2016/02/23 职场文书
导游词之秦始皇兵马俑博物馆
2019/09/29 职场文书
Spring Bean是如何初始化的详解
2022/03/22 Java/Android