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

來源:互聯網
上載者:User
在php中檔案file_put_contents函數是可以把我們字串寫入到檔案中哦,這個與php fwrite檔案有一點相同了,下面我來看看看file_put_contents用法與fwrite區別。

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

file_put_contents()

file_put_contents() 函數用於把字串寫入檔案,成功返回寫入到檔案內資料的位元組數,失敗則返回 FALSE

例子:

代碼如下 複製代碼

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

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

18
而 test.txt 檔案(與程式同目錄下)內容則為:This is something.。

提示

•如果檔案不存在,則建立檔案,相當於fopen()函數行為。
•如果檔案存在,預設將清空檔案內的內容,可設定 flags 參數值為 FILE_APPEND 以避免(見下)。
•本函數可安全用於二進位對象。
以追加形式寫入內容
當設定 flags 參數值為 FILE_APPEND 時,表示在已有檔案內容後面追加內容的方式寫入新資料:

代碼如下 複製代碼

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的執行個體代碼:

代碼如下 複製代碼

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

同樣的功能使用fwrite的執行個體代碼:

代碼如下 複製代碼

$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,這是追加寫入的聲明。執行個體代碼如下:

代碼如下 複製代碼

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

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

代碼如下 複製代碼

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

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

http://www.bkjia.com/PHPjc/632746.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632746.htmlTechArticle在php中檔案file_put_contents函數是可以把我們字串寫入到檔案中哦,這個與php fwrite檔案有一點相同了,下面我來看看看file_put_contents用法與...

  • 相關文章

    聯繫我們

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