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 相关文章推荐
二十行语句实现从Excel到mysql的转化
Oct 09 PHP
PHP 危险函数全解析
Sep 09 PHP
php利用header函数实现文件下载时直接提示保存
Nov 12 PHP
php 操作符与控制结构
Mar 07 PHP
PHP时间戳与日期之间转换的实例介绍
Apr 19 PHP
简单实用的PHP防注入类实例
Dec 05 PHP
php魔术函数__call()用法实例分析
Feb 13 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
Mar 25 PHP
php实现面包屑导航例子分享
Dec 19 PHP
php实现留言板功能
Mar 05 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
Oct 12 PHP
Laravel实现ApiToken认证请求
Oct 14 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错误日志简单配置方法
2016/07/11 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
PHP7 整型处理机制修改
2021/03/09 PHP
js 控制页面跳转的5种方法
2013/09/09 Javascript
网站接入QQ登录的两种方法
2014/07/22 Javascript
DOM操作一些常用的属性汇总
2015/03/13 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
2016/11/27 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
使用form-create动态生成vue自定义组件和嵌套表单组件
2019/01/18 Javascript
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
JS字符串常用操作方法实例小结
2019/06/24 Javascript
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
vue-cli点击实现全屏功能
2020/03/07 Javascript
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
JavaScript 实现轮播图特效的示例
2020/11/05 Javascript
jQuery实现电梯导航模块
2020/12/22 jQuery
[01:42]DOTA2 – 虚无之灵
2019/08/25 DOTA
python基础教程之面向对象的一些概念
2014/08/29 Python
Python中Django框架下的staticfiles使用简介
2015/05/30 Python
对numpy中的transpose和swapaxes函数详解
2018/08/02 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
Python实现网站表单提交和模板
2019/01/15 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
Python2及Python3如何实现兼容切换
2020/09/01 Python
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
企业门卫岗位职责
2013/12/12 职场文书
集中整治工作方案
2014/05/01 职场文书
企业开业庆典答谢词
2015/01/20 职场文书
单位提档介绍信
2015/10/22 职场文书
Golang bufio详细讲解
2022/04/21 Golang