61 檔案系統

來源:互聯網
上載者:User
讀取檔案內容:

PHP具有豐富的檔案操作函數,最簡單的讀取檔案的函數為file_get_contents,可以將整個檔案全部讀取到一個字串中。$content = file_get_contents('./test.txt');file_get_contents也可以通過參數控制讀取內容的開始點以及長度。$content = file_get_contents('./test.txt', null, null, 100, 500);PHP也提供類似於C語言操作檔案的方法,使用fopen,fgets,fread等方法,fgets可以從檔案指標中讀取一行,freads可以讀取指定長度的字串。$fp = fopen('./text.txt', 'rb');while(!feof($fp)) {    echo fgets($fp); //讀取一行}fclose($fp);$fp = fopen('./text.txt', 'rb');$contents = '';while(!feof($fp)) {    $contents .= fread($fp, 4096); //一次讀取4096個字元}fclose($fp);使用fopen開啟的檔案,最好使用fclose關閉檔案指標,以避免檔案控制代碼被佔用。

判斷檔案是否存在:

一般情況下在對檔案進行操作的時候需要先判斷檔案是否存在,PHP中常用來判斷檔案存在的函數有兩個is_file與file_exists.$filename = './test.txt';if (file_exists($filename)) {    echo file_get_contents($filename);}如果只是判斷檔案存在,使用file_exists就行,file_exists不僅可以判斷檔案是否存在,同時也可以判斷目錄是否存在,從函數名可以看出,is_file是確切的判斷給定的路徑是否是一個檔案。$filename = './test.txt';if (is_file($filename)) {    echo file_get_contents($filename);}更加精確的可以使用is_readable與is_writeable在檔案是否存在的基礎上,判斷檔案是否可讀與可寫。$filename = './test.txt';if (is_writeable($filename)) {    file_put_contents($filename, 'test');}if (is_readable($filename)) {    echo file_get_contents($filename);}

寫入內容到檔案:

讀取檔案對應,PHP寫檔案也具有兩種方式,最簡單的方式是採用file_put_contents。$filename = './test.txt';$data = 'test';file_put_contents($filename, $data);上例中,$data參數可以是一個一維數組,當$data是數組的時候,會自動的將數組串連起來,相當於$data=implode('', $data);同樣的,PHP也支援類似C語言風格的操作方式,採用fwrite進行檔案寫入。$fp = fopen('./test.txt', 'w');fwrite($fp, 'hello');fwrite($fp, 'world');fclose($fp);

取得檔案的修改時間:

檔案有很多元屬性,包括:檔案的所有者、建立時間、修改時間、最後的訪問時間等。fileowner:獲得檔案的所有者filectime:擷取檔案的建立時間filemtime:擷取檔案的修改時間fileatime:擷取檔案的訪問時間其中最常用的是檔案的修改時間,通過檔案的修改時間,可以判斷檔案的時效性,經常用在靜態檔案或者快取資料的更新。$mtime = filemtime($filename);echo'修改時間:'.date('Y-m-d H:i:s', filemtime($filename));

取得檔案的大小:

通過filesize函數可以取得檔案的大小,檔案大小是以位元組數表示的。$filename = '/data/webroot/usercode/code/resource/test.txt';$size = filesize($filename);如果要轉換檔大小的單位,可以自己定義函數來實現。functiongetsize($size, $format = 'kb') {$p = 0;    if ($format == 'kb') {        $p = 1;    } elseif ($format == 'mb') {        $p = 2;    } elseif ($format == 'gb') {        $p = 3;    }    $size /= pow(1024, $p);    return number_format($size, 3);}$filename = '/data/webroot/usercode/code/resource/test.txt';$size = filesize($filename);$size = getsize($size, 'kb'); //進行單位轉換echo$size.'kb';值得注意的是,沒法通過簡單的函數來取得目錄的大小,目錄的大小是該目錄下所有子目錄以及檔案大小的總和,因此需要通過遞迴的方法來迴圈計算目錄的大小。

刪除檔案:

跟Unix系統命令類似,PHP使用unlink函數進行檔案刪除。unlink($filename);刪除檔案夾使用rmdir函數,檔案夾必須為空白,如果不為空白或者沒有許可權則會提示失敗。rmdir($dir);如果檔案夾中存在檔案,可以先迴圈刪除目錄中的所有檔案,然後再刪除該目錄,迴圈刪除可以使用glob函數遍曆所有檔案。foreach (glob("*") as $filename) {   unlink($filename);}

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn(1700); }); });

    以上就介紹了61 檔案系統,包括了讀取檔案方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.