首頁 >後端開發 >php教程 >如何遍歷指定目錄下的所有檔案? (php檔案系統操作)

如何遍歷指定目錄下的所有檔案? (php檔案系統操作)

黄舟
黄舟原創
2017-05-20 17:01:563774瀏覽

如何遍歷指定目錄下的所有檔案? (php檔案系統操作)

在網站的後天管理系統中,經常需要對網站伺服器中的檔案進行管理和維護,有時需要新增一個資料夾,刪除某個文件夾或文件,為了更好的查看到這些文件或資料夾,就需要對伺服器指定目錄下的文件進行遍歷,那麼如何實現這個指定目錄下文件的遍歷功能呢?

遍歷指定目錄下的所有檔案的關鍵是目錄和檔案處理函數的應用,包括 file_exists()、is_dir()、opendir()以及closedir()函數。

一、 應用程式解析

(1)file_exists():檢查檔案或目錄是否存在。語法如下:

bool file_exists(string filename)

如果由 filename 指定的檔案或目錄存在,則傳回true,否則傳回 false。

(2)is_dir():判斷給指定的檔案名稱是否為目錄。語法格式如下:

bool is_dir(string filename)

如果檔案名稱存在且為目錄,則傳回true ,如果filename 是相對路徑,則依照目前工作目錄檢查其相對路徑。

說明:

#本函數的結果會被緩存,且無法作用於遠端文件,被檢查的文件必須透過伺服器的檔案系統存取。

(3)opendir():開啟目錄句柄,具體語法格式如下:

resource opendir(string path)

本函數傳回一個目錄句柄,可以再closedir()、readdir( )之前調用。如果 path不是一個合法的目錄或因為權限限製或檔案系統錯誤而無法開啟目錄,opendir()傳回 false並產生一個錯誤訊息。

(4)readdir():從目錄句柄中讀取條目,具體具體語法格式如下:

string  readdir(resource dir_handle)

本函數傳回目錄中下一個檔案的檔案名,檔案名稱以在檔案系統中的排序傳回。

(5)closedir():關閉目錄句柄,具體如發格式如下:

string  closedir(resource dir_handle)

本函數關閉 dir_handle 指定的目錄流,目錄流必須被 opendir()開啟過。

綜合運用上述函數,就可以實現制定目錄下的檔案遍歷運算。

二、應用實例

在本實例中應用上述介紹的函數,實現指定目錄下檔案的遍歷操作,其具體步驟如下:

(1) 建立php文件,新增一個表單,定義表單元素,透過post方法提交目錄的路徑。

(2)在這php文件中,判斷提交的目錄路徑是否為空,則打開目錄,讀取目錄中的文件,並輸出讀取到文件,關閉目錄、否則輸出目錄不存在,具體程式碼如下:

<form name="form1" action="6.php" method="post">
   文件名称: <input name="file_name" type="text">
           <input type="submit" name="Submit" value="提交">
</form>
<?php
header("Content-Type:text/html; charset=utf-8");
$file_name = $_POST[&#39;file_name&#39;];
if ($file_name){
if(!file_exists($file_name)){                 //判断指定路径的目录是否存在
    print $file_name."目录不存在";
}else{
    $i =0;
    if(is_dir($file_name)){                   //检测是否是合法目录
        if ($list = opendir($file_name)){      //打开目录
            while ($read_list = readdir($list)){  //读取目录
                $i++;    
            echo "$i:".iconv("gb2312","utf-8","$read_list")."<br>";
        }
    }
}
closedir($list);    //关于目录
}
}

執行本實例,在文字方塊中輸入一個指定的資料夾,按一下點擊「提交」按鈕,如果該資料夾存在,就可以顯示該資料夾下方包含的所有文件,運行結果如下:

如何遍歷指定目錄下的所有檔案? (php檔案系統操作)

以上是如何遍歷指定目錄下的所有檔案? (php檔案系統操作)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn