php獲取指定目錄下的所有文件列表


在我們實際的開發需求中,經常用到操作文件,今天就講一下關於獲取指定目錄下的所有文件的幾種常用方法:

 

1、scandir()函數

scandir() 函數返回指定目錄中的文件和目錄的數組。

scandir(directory,sorting_order,context); 
參數 描述
directory 必需。規定要掃描的目錄。
sorting_order

可選。規定排列順序。默認是 0,表示按字母升序排列。

如果設置為 SCANDIR_SORT_DESCENDING 或者 1,則表示按字母降序排列。

如果設置為 SCANDIR_SORT_NONE,則返回未排列的結果。

context 可選。規定目錄句柄的環境。context 是可修改目錄流的行為的一套選項。

若成功則返回文件和目錄的數組。失敗則返回 FALSE。

如果 directory 不是目錄,則拋出 E_WARNING 級別的錯誤。

假如有如下目錄結構:

在sf.php寫入代碼如下:

<?php  
//獲取當前文件所在的絕對目錄
$dir =  dirname(__FILE__);
//掃描文件夾
$file = scandir($dir);
//顯示
echo " <pre>";
print_r($file);

?>

顯示如下圖所示:

2、使用opendir、readdir、closedir

opendir() 函數打開一個目錄句柄,若成功,則該函數返回一個目錄流,否則返回 false 以及一個 error。可以通過在函數名前加上 "@" 來隱藏 error 的輸出。

readdir() 函數返回由 opendir() 打開的目錄句柄中的條目。若成功,則該函數返回一個文件名,否則返回 false。

closedir — 關閉目錄句柄。

代碼如下:

<?php  
//取得當前文件所在目錄
$dir  =  dirname(__FILE__);
 //判斷目標目錄是否是文件夾
        $file_arr = array();
        if(is_dir($dir)){
            //打開
            if($dh = @opendir($dir)){
                //讀取
              
                while(($file = readdir($dh)) !== false){

                    if($file != '.' && $file != '..'){
  
                        $file_arr[] = $file;
                    }

                }
                //關閉
                closedir($dh);
            }
}
?>
echo "<pre>";
print_r($file);

結果如圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM