應用PHP檔案函數擷取檔案資訊執行個體教程

來源:互聯網
上載者:User

  上一篇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著作權,轉載時請以連結形式註明原始出處及本聲明,謝謝。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.