程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP file_put_contents 將字符串寫入或追加到文件

PHP file_put_contents 將字符串寫入或追加到文件

編輯:關於PHP編程

在php中文件file_put_contents函數是可以把我們字符串寫入到文件中哦,這個與php fwrite文件有一點相同了,下面我來看看看file_put_contents用法與fwrite區別。

PHP file_put_contents() 函數是一次性向文件寫入字符串或追加字符串內容的最合適選擇。

file_put_contents()

file_put_contents() 函數用於把字符串寫入文件,成功返回寫入到文件內數據的字節數,失敗則返回 FALSE

例子:

 代碼如下 復制代碼

<?php
echo file_put_contents("test.txt", "This is something.");
?>

運行該例子,浏覽器輸出:

18
而 test.txt 文件(與程序同目錄下)內容則為:This is something.。

提示

•如果文件不存在,則創建文件,相當於fopen()函數行為。
•如果文件存在,默認將清空文件內的內容,可設置 flags 參數值為 FILE_APPEND 以避免(見下)。
•本函數可安全用於二進制對象。
以追加形式寫入內容
當設置 flags 參數值為 FILE_APPEND 時,表示在已有文件內容後面追加內容的方式寫入新數據:

 代碼如下 復制代碼

<?php
file_put_contents("test.txt", "This is another something.", FILE_APPEND);
?>

執行程序後,test.txt 文件內容變為:This is something.This is another something.

file_put_contents() 的行為實際上等於依次調用 fopen(),fwrite() 以及 fclose() 功能一樣。

那麼到底file_put_contents與fwrite區別在哪裡

如下為file_put_contents的實例代碼:

 代碼如下 復制代碼

<?php
$filename = 'file.txt';
$word = "你好!rnwebkaka";  //雙引號會換行 單引號不換行
file_put_contents($filename, $word);
?>

同樣的功能使用fwrite的實例代碼:

 代碼如下 復制代碼

<?php
$filename = 'file.txt';
$word = "你好!rnwebkaka";  //雙引號會換行  單引號不換行
$fh = fopen($filename, "w"); //w從開頭寫入 a追加寫入
echo fwrite($fh, $word);
fclose($fh);
?>

從以上兩個例子看出,其實file_put_contents是fopen、fwrite、fclose三合一的簡化寫法,這對程序代碼的優化是有好處的,一方面在代碼量上有所減少,另一方面不會出現fclose漏寫的不嚴密代碼,在調試、維護上方便很多。

上述例子裡,file_put_contents是從頭寫入,如果要追加寫入,怎麼辦呢?

在file_put_contents的語法裡,有個參數FILE_APPEND,這是追加寫入的聲明。實例代碼如下:

 代碼如下 復制代碼

<?php
echo file_put_contents('file.txt', "This is another something.", FILE_APPEND);
?>

FILE_APPEND就是追加寫入的聲明。在追加寫入時,為了避免其他人同時操作,往往需要鎖定文件,這時需要加多一個LOCK_EX的聲明,寫法如下:

 代碼如下 復制代碼

<?php
echo file_put_contents('file.txt', "This is another something.", FILE_APPEND|LOCK_EX);
?>

注意,以上代碼中echo輸出到顯示器裡的是寫入文件字符串的長度

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved