PHP file_put_contents 將字串寫入或追加到檔案

來源:互聯網
上載者:User

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輸出到顯示器裡的是寫入檔案字串的長度

相關文章

聯繫我們

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