讀取檔案內容:
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教程有興趣的朋友有所協助。