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 12 PHP
备份mysql数据库的php代码(一个表一个文件)
May 28 PHP
php数据入库前清理 注意php intval与mysql的int取值范围不同
Dec 12 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
Aug 14 PHP
在PHP上显示JFreechart画的统计图方法
Nov 03 PHP
PHP和Mysql中转UTF8编码问题汇总
Oct 10 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
Feb 03 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
May 04 PHP
PHP 读取大文件并显示的简单实例(推荐)
Aug 12 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
Oct 25 PHP
thinkPHP5框架自定义验证器实现方法分析
Jun 11 PHP
PHP中国际化的字符串排序和比较对象详解
Aug 23 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中计算程序运行时间的类代码
2012/11/03 PHP
如何使用FireFox插件FirePHP调试PHP
2013/07/23 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
2014/11/24 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
javascript中json基础知识详解
2017/01/19 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
2017/07/17 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
原生nodejs使用websocket代码分享
2018/04/07 NodeJs
php中and 和 &amp;&amp;出坑指南
2018/07/13 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
微信小程序开发之路由切换页面重定向问题
2018/09/18 Javascript
vue.js实现二级菜单效果
2019/10/19 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
echarts实现折线图的拖拽效果
2019/12/19 Javascript
基于JavaScript实现大文件上传后端代码实例
2020/08/18 Javascript
centos下更新Python版本的步骤
2013/02/12 Python
总结Python编程中函数的使用要点
2016/03/20 Python
wxPython之解决闪烁的问题
2018/01/15 Python
django-allauth入门学习和使用详解
2019/07/03 Python
opencv调整图像亮度对比度的示例代码
2019/09/27 Python
python每5分钟从kafka中提取数据的例子
2019/12/23 Python
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
美国折扣地毯销售网站:Rugs.com
2020/03/27 全球购物
小学毕业家长寄语
2014/01/19 职场文书
七年级政治教学反思
2014/02/03 职场文书
小学班长竞选演讲稿
2014/04/24 职场文书
毕业论文答辩开场白和答辩技巧
2015/05/27 职场文书
隐形的翅膀观后感
2015/06/10 职场文书
开学第一周总结
2015/07/16 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
Win11筛选键导致键盘失灵怎么解决? Win11关闭筛选键的技巧
2022/04/08 数码科技