PHP檔案系統操作實踐
本文介紹一些自己在使用php讀檔案和寫檔案時的操作實踐 常用的PHP讀檔案和寫檔案 使用情境的簡單介紹 常用的PHP讀檔案和寫檔案
讀檔案
(1)file_get_contents()查看函數定義
將檔案的內容讀入到字串當中
<?php$str = file_get_contents('example.txt');echo $str;
(2)file()查看函數定義
將檔案的內容讀入到數組當中
<?php$array = file('example.txt');var_dump($array);
(3)fopen()查看函數定義
這個函數成功時返回的是檔案指標的資源
<?php$fp = fopen('example.txt', 'r');while(!feof($fp)){//feof()測試檔案指標是否到了檔案結束的位置 echo fgets($fp);//fgets()逐行讀取}fclose($fp);//關閉檔案指標
寫檔案
(1)file_put_contents()查看函數定義
將字串寫入到檔案中
<?php$filename = 'example.txt';//檔案名稱$str = 'hello world';//要寫入的資料$flag = FILE_APPEND;//當檔案存在時在檔案尾部追加資料,當沒有這個參數時預設為覆蓋檔案$result = file_put_contents($filename, $str, $flag);if($result){ echo '檔案寫入成功。';}else{ echo '檔案寫入失敗。';}
(2)fwrite()查看函數定義
將檔案的內容讀入到數組當中
<?php$fp = fopen('example.txt', 'w');$str = 'hello world';$result = fwrite($fp, $str);fclose($fp);//關閉檔案指標,在操作完之後不管是否成功請關閉指標if($result){ echo '檔案寫入成功。';}else{ echo '檔案寫入失敗。';}
使用情境的簡單介紹
讀檔案時什麼時候使用file_get_contents()?什麼時候使用fopen()?
在讀取資料量不大的檔案可以使用file_get_contents()。使用這個函數讀取檔案代碼量少而且能夠得到自己想要的結果。但是在讀取大檔案的時候卻不能用這個函數,筆者在剛實習的時候主管給的一個任務是寫一個指令碼讓營運去使用,作用就是讀取日誌裡的請求。當時的筆者也是選擇了file_get_contents()這個函數去寫,但是主管看過之後就馬上對這個地方提出了問題。file_get_contents()這個函數是將檔案的內容讀到一個字串當中,而當時筆者所在部門雖然只負責公司的部分業務,但是日誌的記錄量還是很大的,用file_get_contents()去讀日誌顯然是不合適的,被教育一翻之後筆者把讀檔案的方式改成逐行去讀,逐行去讀也可以設定每一行讀出來的資料大小,筆者沒有列出來,感興趣的朋友可以去搜一下.
寫檔案時需要注意什麼。
其實寫檔案時要注意的是你要操作的檔案是一個空白的檔案還是說已經有內容的檔案,而你要寫這個檔案是要新內容覆蓋舊內容還是在舊內容末尾添加新內容,又或者是在指定位置添加。簡單粗暴的就是使用file_put_contents()這個函數預設是新內容覆蓋舊內容,如果你想在檔案最後新增內容的話,可以加上FILE_APPEND這個常量。如果你是想要在檔案中的某個位置加入新內容的話,檔案資料量不大的時候可以用file_get_contents()取出原有的資料進行匹配,然後再在匹配到的地方拼接字串重新寫入檔案(覆蓋)。使用fwrite()寫檔案的同學注意了,使用’w’或者’w+’的時候如果檔案存在會先清空檔案,檔案指標會在檔案頭。如果需要在檔案後添加的同學可以使用’a’或者’a+’。 PHP檔案系統線上文檔
文檔地址