本篇文章給大家分享的是有關使用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怎么獲取目錄下的所有文件及目錄,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。