上一篇PHP目錄函式教程中主要介紹了目錄(檔案夾)讀取,遍曆的方法,但最基本的檔案管理系統同時涉及到檔案資訊、檔案大小讀取以便檢查磁碟使用方式,也需要擷取檔案修改或訪問時間,刪除或移動整理檔案的功能,這些都需要通過PHP檔案函數同檔案系統互動。
基本PHP檔案函數介紹
PHP檔案函數dirname()和basename()的區別
dirname()獲得檔案目錄路徑的目錄部分,而basename()獲得不帶目錄的檔案名稱
如何通過PHP檔案函數獲得檔案基本資料?
之前介紹了PHP目錄讀取執行個體,我們只要在遍曆目錄(檔案夾)函數listSubDir基礎上增加PHP檔案資訊函數即可。listSubDir函數請參考PHP遍曆目錄(檔案夾)執行個體。
1、在以下位置添加getFileInfo函數,輸出檔案資訊
1 2 3 4 5 6 7
|
<? if(is_file($newDir)){ echo$dirC.$subFile.":檔案屬性<br/>"; getFileInfo($newDir); } ?> |
2、應用PHP檔案函數擷取檔案資訊函數執行個體代碼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
function getFileInfo($fileInfo) { echo"檔案目錄資訊:<br/>"; echo"檔案類型:".filetype($fileInfo)."<br/>"; echo"檔案大小:".filesize($fileInfo)."<br/>";
echo"最近訪問時間:".date("j F Y H:i",fileatime($fileInfo))."<br/>"; echo"最近修改時間:".date("j F Y H:i",filemtime($fileInfo))."<br/>"; echo"是否為可執行檔:".(is_executable($fileInfo)?"是":"否")."<br/>"; echo"是否為連結(Link):".(is_link($fileInfo)?"是":"否")."<br/>"; echo"是否可讀:".(is_readable($fileInfo)?"是":"否")."<br/>"; echo"是否可寫:".(is_writable($fileInfo)?"是":"否")."<br/>"; echo"檔案絕對路徑":realpath($fileInfo);
clearstatcache(); } |
說明:
這段代碼主要通過PHP檔案函數擷取如下資訊:檔案類型、檔案大小、最近訪問、修改時間、檔案可讀可寫屬性等。
知識點:
1、filetype函數:擷取檔案類型,如函數執行成功則返回如下值中的一個,否則則返回False。七個可能值:fifo、char、dir、block、link、file、unknown
2、filesize函數:擷取檔案大小,以位元組計算
3、fileatime函數:檔案最近訪問時間,filemtime函數:檔案最近修改時間。這兩個PHP檔案函數返回的時間戳記類似於UNIX時間戳記,所以需要通過Date函數進行格式化。
4、is_executable、is_link、is_readable、is_writable:這四個PHP檔案函數分別返迴文件是否可執行、是否是連結、是否可讀、是否可寫。
注意:PHP檔案狀態函數運行起來都比較費時,所以將會被自動緩衝;如果希望清除緩衝,可以使用clearstatcache()函數,以擷取最新的檔案資訊。
說個題外話,上述這些PHP檔案函數擷取的檔案資訊你也可以通過stat($file)函數擷取,其以數組形式返迴文件的所有詳細資料,你可以使用print_r函數輸出看下。
5、realpath函數:返迴文件的絕對路徑,當需要找出檔案在磁碟上的準確位置,則使用此函數。
以上這些函數對應檔案名稱參數,如果所要擷取的檔案路徑與PHP代碼執行檔案不在同一目錄下,請注意需要帶上具體的檔案路徑。
建立檔案的方法
方式一:通常都使用PHP檔案操作函數fopen以寫入模式開啟檔案,再寫入內容並儲存,這樣一個檔案就建立好了。PHP檔案如何寫入?
方式二:使用PHP檔案操作函數touch建立,touch函數有三個參數:建立的檔案名稱、訪問時間、修改時間,其中訪問時間和修改時間是可選的,預設值為當前系統時間。如果指定的檔案不存在,那麼它將被自動建立。通過touch函數你可以修改建立檔案的最近訪問和修改時間,這兩個參數都是UNIX時間戳記,你需要通過mktim函數進行轉換。
移動和複製檔案的PHP檔案函數
移動檔案可以通過rename函數,複製檔案可以使用copy函數,這兩個PHP檔案操作函數的區別在於rename函數是將老檔案移動到新的目錄下,而copy函數顧名思義是將老檔案複製到新目錄下,來源目錄下的檔案仍然是存在的。
PHP刪除檔案的方法
在之前PHP目錄函式文章中,我說過在刪除目錄時必須為空白目錄,當目錄下有檔案時,我們必須刪除檔案才能刪除目錄,那麼檔案刪除有什麼方法呢?
一種方法是通過PHP檔案函數unlink實現,另一種方法是通過system函數執行系統命令,比如在WINDOWS系統下執行刪除檔案的操作。
建立、移動、複製、刪除檔案的代碼執行個體如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
<?php $fileDir="leapsoulcn/fileinfo.txt";
touch($fileDir,mktime(12,55,55,4,10,2000),mktime(12,55,55,4,10,2005)); //刪除檔案的兩種方法,使用時請登出一種方法 system("del leapsoulcn\fileinfo.txt"); unlink($fileDir); //移動檔案 rename("leapsoulcn/newfileinfo.txt","leapsoulcn/php/fileinfo.txt"); //複製檔案 copy("leapsoulcn/php/fileinfo.txt","leapsoulcn/newfileinfo.txt"); ?> |
至此利用PHP檔案函數擷取檔案資訊,建立、移動、複製、刪除檔案的方法就介紹完畢了,結合之前介紹的PHP檔案讀寫教程、PHP目錄函式教程,PHP檔案上傳教程,應該說基本的PHP檔案函數我都已全面涉及,非常適合PHP初學者學習使用。
注:PHP網站開發教程-leapsoul.cn著作權,轉載時請以連結形式註明原始出處及本聲明,謝謝。