php读取目录及子目录下所有文件名的方法


Posted in PHP onOctober 20, 2014

本文实例讲述了php读取目录及子目录下所有文件名的方法,分享给大家供大家参考。具体实现方法如下:

一般来说php中读取目录下的文件名的方式确实不少,最简单的是scandir,具体代码如下:

$dir="./caxa/";

$file=scandir($dir);

print_r($file);

稍微复杂点的,来自于php手册:

$dir = "/etc/php5/";

// Open a known directory, and proceed to read its contents

if (is_dir($dir)) {

if ($dh = opendir($dir)) {

while (($file = readdir($dh)) !== false) {

echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";

} closedir($dh);

}

}

这些都只能读取当前指定目录下的文件,对子目录中的文件则无法读取。原来自己写过一个循环删除所有目录的一段代码,需要逐个子目录删除所有文件,包括多层。但是只需要读出文件名,稍微复杂点,网上找到一个能用,原始代码有错误提示,改了一下引用&$data的地方,如下所示:

function searchDir($path,&$data){

if(is_dir($path)){

$dp=dir($path);

while($file=$dp->read()){

if($file!='.'&& $file!='..'){

searchDir($path.'/'.$file,$data);

}

}

$dp->close();

}

if(is_file($path)){

$data[]=$path;

}

}
function getDir($dir){

$data=array();

searchDir($dir,$data);

return   $data;

}
print_r(getDir('.'));

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
Windows下的PHP5.0安装配制详解
Sep 05 PHP
可以在线执行PHP代码包装修正版
Mar 15 PHP
php中用foreach来操作数组的代码
Jul 17 PHP
php define的第二个参数使用方法
Nov 04 PHP
CI框架中zip类应用示例
Jun 17 PHP
PHP程序员常见的40个陋习,你中了几个?
Nov 20 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
Nov 27 PHP
PHP获取用户访问IP地址的5种方法
May 16 PHP
php实现的二叉树遍历算法示例
Jun 15 PHP
php 策略模式原理与应用深入理解
Sep 25 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
Oct 15 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
Sep 15 PHP
php中的字符编码转换函数用法示例
Oct 20 #PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
Oct 20 #PHP
php的ZipArchive类用法实例
Oct 20 #PHP
php自定义apk安装包实例
Oct 20 #PHP
php防止站外远程提交表单的方法
Oct 20 #PHP
php获取textarea的值并处理回车换行的方法
Oct 20 #PHP
php实现给图片加灰色半透明效果的方法
Oct 20 #PHP
You might like
PHP小教程之实现链表
2014/06/09 PHP
PHP实现HTML生成PDF文件的方法
2014/11/07 PHP
详解Yii2高级版引入bootstrap.js的一个办法
2017/03/21 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
Aster vs KG BO3 第二场2.19
2021/03/10 DOTA
ExtJS扩展 垂直tabLayout实现代码
2009/06/21 Javascript
一句话JavaScript表单验证代码
2009/08/02 Javascript
JS实现遮罩层效果的简单实例
2013/11/12 Javascript
Node.js插件的正确编写方式
2014/08/03 Javascript
node.js中使用q.js实现api的promise化
2014/09/17 Javascript
js实现简单折叠、展开菜单的方法
2015/08/28 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
javascript仿百度输入框提示自动下拉补全
2016/01/07 Javascript
JavaScript仿flash遮罩动画效果
2016/06/15 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
js图片放大镜效果实现方法详解
2020/10/28 Javascript
微信JS SDK接入的几点注意事项(必看篇)
2017/06/23 Javascript
JS实现数组去重方法总结(六种方法)
2017/07/14 Javascript
JS实现的计数排序与基数排序算法示例
2017/12/04 Javascript
React如何避免重渲染
2018/04/10 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
[39:07]LGD vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
Django框架中方法的访问和查找
2015/07/15 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
2018/12/17 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
使用Python发现隐藏的wifi
2020/03/04 Python
html5 canvas-1.canvas介绍(hello canvas)
2013/01/07 HTML / CSS
介绍一下gcc特性
2015/10/31 面试题
快餐店的创业计划书范文
2014/01/29 职场文书
高中历史教学反思
2016/02/19 职场文书
Vue项目打包、合并及压缩优化网页响应速度
2021/07/07 Vue.js
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技