这篇文章主要介绍了php获取目录下所有文件及目录多种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
获取某目录下所有子文件和子目录
function getDirContent($path){
if(!is_dir($path)){
return false;
}
//readdir方法
/* $dir = opendir($path);
$arr = array();
while($content = readdir($dir)){
if($content != '.' && $content != '..'){
$arr[] = $content;
}
}
closedir($dir); */
//scandir方法
$arr = array();
$data = scandir($path);
foreach ($data as $value){
if($value != '.' && $value != '..'){
$arr[] = $value;
}
}
return $arr;
}
下面介绍的三种方法,是获取某个目录下所有的目录(包括子目录,子孙目录)和文件,直到最里层
方法一
function searchDir($path,&$files){
if(is_dir($path)){
$opendir = opendir($path);
while ($file = readdir($opendir)){
if($file != '.' && $file != '..'){
searchDir($path.'/'.$file, $files);
}
}
closedir($opendir);
}
if(!is_dir($path)){
$files[] = $path;
}
}
//得到目录名
function getDir($dir){
$files = array();
searchDir($dir, $files);
return $files;
}
$filenames = getDir('lss');
foreach ($filenames as $value){
echo $value.'<br/>';
}
方法二:
function getDir($path){
if(is_dir($path)){
$dir = scandir($path);
foreach ($dir as $value){
$sub_path =$path .'/'.$value;
if($value == '.' || $value == '..'){
continue;
}else if(is_dir($sub_path)){
echo '目录名:'.$value .'<br/>';
getDir($sub_path);
}else{
//.$path 可以省略,直接输出文件名
echo ' 最底层文件: '.$path. ':'.$value.' <hr/>';
}
}
}
}
$path = 'lss';
getDir($path);
方法三:
function getDir($path){
$arr = array();
$arr[] = $path;
if(is_file($path)){
}else{
if(is_dir($path)){
$data = scandir($path);
if(!empty($data)){
foreach ($data as $value){
if($value != '.' && $value != '..'){
$sub_path = $path."/".$value;
$temp = getDirContent($sub_path);
$arr = array_merge($temp,$arr);
}
}
}
}
}
return $arr;
}
$path = 'lss';
var_dump(getDir($path));
以上所述是小编给大家介绍的php获取目录下所有文件及目录多种方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程学习网网站的支持!
沃梦达教程
本文标题为:php获取目录下所有文件及目录(多种方法)(推荐)
基础教程推荐
猜你喜欢
- 在Laravel中实现使用AJAX动态刷新部分页面 2023-03-02
- php array分组,PHP中array数组的分组排序 2022-08-01
- PHP获取MySQL执行sql语句的查询时间方法 2022-11-09
- laravel ORM关联关系中的 with和whereHas用法 2023-03-02
- PHP中的错误及其处理机制 2023-06-04
- laravel 解决多库下的DB::transaction()事务失效问题 2023-03-08
- PHP实现Redis单据锁以及防止并发重复写入 2022-10-12
- 使用PHP开发留言板功能 2023-03-13
- thinkphp3.2.3框架动态切换多数据库的方法分析 2023-03-19
- PHP命名空间简单用法示例 2022-12-01