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生成自己的LOG文件
Oct 09 PHP
PHP如何抛出异常处理错误
Mar 02 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
Jul 13 PHP
比较简单的百度网盘文件直链PHP代码
Mar 24 PHP
thinkphp 一个页面使用2次分页的实现方法
Jul 15 PHP
一款简单实用的php操作mysql数据库类
Dec 08 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
Mar 03 PHP
thinkPHP中验证码的简单使用方法
Dec 26 PHP
Yii2.0预定义的别名功能小结
Jul 04 PHP
基于PHP-FPM进程池探秘
Oct 17 PHP
PHP 二维array转换json的实例讲解
Aug 21 PHP
解决PhpStorm64不能启动的问题
Jun 20 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
Smarty模板引擎缓存机制详解
2016/05/23 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
关于使用 jBox 对话框的提交不能弹出问题解决方法
2012/11/07 Javascript
使用jQuery validate 验证注册表单实例演示
2013/03/25 Javascript
JS模板实现方法
2013/04/03 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
Node.js 制作实时多人游戏框架
2015/01/08 Javascript
AngularJS ng-app 指令实例详解
2016/07/30 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
node.js操作MongoDB的实例详解
2017/10/11 Javascript
Vue 进入/离开动画效果
2017/12/26 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
2018/06/28 Javascript
vue-rx的初步使用教程
2018/09/21 Javascript
JavaScript ES6箭头函数使用指南
2018/12/30 Javascript
推荐一个基于Node.js的表单验证库
2019/02/15 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
微信小程序(订阅消息)功能
2019/10/25 Javascript
介绍Python的Django框架中的QuerySets
2015/04/20 Python
Python脚本实时处理log文件的方法
2016/11/21 Python
Python设计模式之桥接模式原理与用法实例分析
2019/01/10 Python
python实现画五角星和螺旋线的示例
2019/01/20 Python
面向新手解析python Beautiful Soup基本用法
2020/07/11 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
css3实现简单的白云飘动背景特效
2020/10/28 HTML / CSS
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
运动会跳远广播稿
2014/02/04 职场文书
同学会主持词
2014/03/18 职场文书
领导班子三严三实心得体会
2014/10/13 职场文书
担保贷款承诺书
2015/04/30 职场文书
教你用python控制安卓手机
2021/05/13 Python
Java 实现限流器处理Rest接口请求详解流程
2021/11/02 Java/Android
关于JavaScript轮播图的实现
2021/11/20 Javascript