1. 程式人生 > >php面向物件(目錄操作)

php面向物件(目錄操作)

目錄操作

建立目錄

Mkdir(目錄地址,許可權,是否遞迴建立=false);

Rmdir(目錄地址)

刪除目錄

僅僅可以刪除空目錄。(不支援遞迴刪除)

移動改名)

Rename(地址,新地址)

該函式也支援操作檔案

獲取目錄內容(檔案)

開啟目錄 目錄控制代碼 = opendir(目錄地址)

目錄控制代碼:php程式與目錄間的一個聯絡

依次讀取目錄內檔案 檔名 = readdir(目錄控制代碼);

依次讀取一個檔案(子目錄),同時向下移動控制代碼指標。如果讀取不到返回false

目錄記憶體在兩個邏輯子目錄 ., .. 分別表示當前目錄和上級目錄!

通過配合 迴圈結構 完成目錄內所有檔案的讀取:

處理 0 檔名

關閉目錄 closedir()

遞迴獲取目錄內容

開啟某個目錄

依次讀取目錄內檔案

如果某個檔案為目錄

遞迴對該目錄採用開啟,讀取,判斷這個遞迴草

遞迴點 如果子檔案為目錄,則遞迴

出口 如果目錄中不存在子目錄,則不需要繼續遞迴!

樹狀展示

使用特定數量的縮排達到樹狀目的!

核心問題,計算需要縮排的數量!

縮排級別,與遞迴呼叫深度保持一致。每當執行遞迴操作找到的檔案的縮排級別+1;

語法實現:

增加一個引數,表示當前函式呼叫的深度級別,每當遞迴+1;

巢狀

使用陣列的巢狀,表示層級關係!

例如

實現

遞迴刪除

Unlink(檔案地址)刪除檔案。

目錄檔名編碼問題:

展示時,將作業系統編碼轉換為響應資料編碼。

Windows gbk,專案utf-8

程式碼的地址中存在中文:需要轉換為系統編碼,才能被檔案系統識別:

由於php基於Linux系統,所以php的檔案操作包括檔案目錄以及檔案兩部分的操作,只能操作伺服器的檔案