本篇文章给大家分享的是有关使用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));
1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支持多种主流与非主流的数据库。4、面向对象编程:PHP提供了类和对象。5、版本更新速度快。6、具有丰富的功能。7、可伸缩性。8、功能全面,包括图形处理、编码与解码、压缩文件处理、xml解析等。
以上就是使用php怎么获取目录下的所有文件及目录,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。