在php程式設計中,多層級目錄的複製與刪除是個問題,可以用php遞歸函數實作目錄的複製與刪除操作,自訂的遞迴函式複製目錄與刪除目錄的一些例子。
php遞歸函數刪除目錄 在php中要複製一個包含多個子目錄的目錄,將涉及檔案的複製、目錄建立等操作。複製一個檔案可以透過PHP提供的copy()函數完成,建立目錄可以使用mkdir()函數。定義函數時,首先對來源目錄進行遍歷,如果遇到的是普通文件,直接使用copy()函數進行複製。如果遍歷時遇到目錄,則必須建立該目錄,然後再對該目錄下的檔案進行複製操作,如果還有子目錄,則使用遞歸重複操作,最終將整個目錄複製完成。 例子,自訂的遞歸函數複製目錄。 複製程式碼 程式碼範例:從安全性和跨平台等方面考慮,盡量不要去呼叫作業系統的SHELL指令「cp-a」完成目錄的複製。 二、php建立和刪除目錄函數介紹和遞歸刪除目錄函數 php建立和刪除目錄函數介紹和遞歸刪除目錄函數,理解下遞歸刪除目錄的自訂函數的實作方法。 mkdir() — 新目錄 – 語法:bool mkdir (string pathname [,int mode]) – 嘗試新建一個由 pathname 指定的目錄。 rmdir() — 刪除目錄 – 語法:bool rmdir ( string dirname ) – 嘗試刪除 dirname 所指定的目錄。 該目錄必須是空的,而且要有對應的權限。如果成功則傳回 TRUE,失敗則傳回 FALSE。 unlink — 刪除檔案 – 語法:bool unlink ( string filename ) – 刪除 filename。和 Unix C 的 unlink() 函數相似。如果成功則傳回 TRUE,失敗則傳回 FALSE。 在PHP中,使用mkdir()函數只需要傳入一個目錄名即可輕鬆建立新目錄。但刪除目錄所使用的函數rmdir(),只能刪除一個空目錄且目錄必須存在。如果是非空的目錄就需要先進入目錄中,使用unlink()函數將目錄中的每個檔案都刪除掉,再回來將這個空目錄刪除。如果目錄中還存在目錄,而且子目錄也非空,就要使用遞迴的方法了。 例子,自訂遞歸函數刪除目錄: 複製程式碼 程式碼範例:當然也可以透過呼叫作業系統指令「rm-rf」刪除非空的目錄,但也要從安全性和跨平台考慮盡量不要去使用。 三、php自訂函數之遞歸刪除檔案及目錄 自訂函數之遞歸刪除檔案及目錄的php程式碼 例子: 複製程式碼 程式碼範例: 四、php遞歸函數刪除整個目錄php實作用於刪除整個目錄的遞歸函數,包括php遞歸演算法與目錄技巧。 例子,php實作用於刪除整個目錄的遞歸函數。 複製程式碼 程式碼範例: |