該文主要介紹一下怎樣應用PHP文件函數獲取文件信息。首先我們來看看PHP文件函數的基本介紹
PHP文件函數dirname()和b
asename()的區別
dirname()獲得文件目錄路徑的目錄部分,而basename()獲得不帶目錄的文件名
如何通過PHP文件函數獲得文件基本信息?
之前介紹了PHP目錄讀取實例,我們只要在遍歷目錄(文件夾)函數listSubDir基礎上增加PHP文件信息函數即可。listSubDir函數請參考PHP遍歷目錄(文件夾)實例。
1、在以下位置添加
getFileInfo函數,輸出文件信息
<?
if (is_file($newDir)) {
echo $dirC.$subFile.":文件屬性<br/>";
getFileInfo($newDir);
}
?>
2、應用PHP文件函數獲取文件信息函數實例代碼
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);
clearstat
cache();
}
說明:
這段代碼主要通過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系統下執行刪除文件的操作。
創建、移動、復制、刪除文件的代碼實例如下:
<?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初學者學習使用。