php向文件裡寫入或追加數據有兩種方法,一種是fopen,還有一種是file_put_contents,本文簡要介紹一下兩種方法的具體用法,有需要的朋友可以看看。
(1)fopen
fopen() 函數打開文件或者 URL,如果打開失敗,本函數返回 FALSE。
語法:fopen(filename,mode,include_path,context)
參數 說明
filename 必需。規定要打開的文件或 URL。
mode 必需。規定要求到該文件/流的訪問類型。可能的值見下表。
include_path 可選。如果也需要在 include_path 中檢索文件的話,可以將該參數設為 1 或 TRUE。
context 可選。規定文件句柄的環境。Context 是可以修改流的行為的一套選項。
mode 參數的可能的值
創建並以寫入方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗並返回 FALSE,並生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創建之。
這和給底層的 open(2) 系統調用指定 O_EXCL|O_CREAT 標記是等價的。
此選項被 PHP 4.3.2 以及以後的版本所支持,僅能用於本地文件。
"x+"創建並以讀寫方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗並返回 FALSE,並生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創建之。
這和給底層的 open(2) 系統調用指定 O_EXCL|O_CREAT 標記是等價的。
此選項被 PHP 4.3.2 以及以後的版本所支持,僅能用於本地文件。
以追加形式寫入內容
<?php $fp=fopen('test.txt','a');
(2)file_put_contents
file_put_contents() 函數用於把字符串寫入文件,成功返回寫入到文件內數據的字節數,失敗則返回 FALSE。
語法:int file_put_contents(string filename,string data[,int flags[,resource context]])
參數 說明
filename 要寫入數據的文件名
data 要寫入的數據。類型可以是 string,array(但不能為多維數組),或者是 stream 資源
flags 可選,規定如何打開/寫入文件。可能的值:
FILE_USE_INCLUDE_PATH:檢查 filename 副本的內置路徑
FILE_APPEND:在文件末尾以追加的方式寫入數據
LOCK_EX:對文件上鎖
context 可選,Context是一組選項,可以通過它修改文本屬性
例如:
<?php echo file_put_contents("test.txt","www.phpernote.com"); //輸出:17
以追加形式寫入內容
當設置 flags 參數值為 FILE_APPEND 時,表示在已有文件內容後面追加內容的方式寫入新數據,例如:
<?php file_put_contents("test.txt","www.phpernote.com",FILE_APPEND);
提示
file_put_contents() 的行為實際上等同於依次調用 fopen(),fwrite() 以及 fclose() 函數。
如果文件不存在,則創建文件,相當於fopen()函數行為。
如果文件存在,默認將清空文件內的內容,可設置 flags 參數值為 FILE_APPEND 以避免。
file_put_contents 函數可安全用於二進制對象。