PHP fwrite()
fwrite() 函數用於向文件寫入字符串,成功返回寫入的字符數,否則返回 FALSE 。
語法:
int fwrite( resource handle, string string [, int length] )
fwrite() 把 string 的內容寫入文件指針 handle 處。
參數 | 說明 |
---|---|
handle | 要寫入字符串的文件指針,一般由 fopen() 函數創建 |
data | 要寫入的字符串 |
length | 可選,規定要寫入的最大字節數 |
如果指定了可選參數 length,當寫入了 length 個字節或者寫完了 string 以后,寫入就會停止。
例子:
<?php // 要寫入的文件名字 $filename = 'file.txt'; // 寫入的字符 $word = "你好!"; $fh = fopen($filename, "w"); echo fwrite($fh, $word); // 輸出:6 fclose($fh); ?>
執行該例子程序,在程序同目錄下,file.txt 文件內容為:你好!
使用 length 參數
上面的例子中,如果使用了 length 參數,則至多寫入 length 個字符串:
echo fwrite($fh, $word, 4); // 輸出:4
PHP fwrite 追加寫入
對文件的追加寫入,實際與 fwrite 函數無關,而與 fopen 函數打開文件的模式有關。當 fopen 打開文件時,mode 參數選擇 a ,則表示在文件后面追加寫入:
<?php $filename = 'file.txt'; $word = "你好!"; $fh = fopen($filename, "a"); echo fwrite($fh, $word); fclose($fh); ?>
PHP fwrite 換行寫入
如果要在文件中實現換行寫入,只需要在寫入內容中需要換行的地方添加換行符 n 即可:
<?php $filename = 'file.txt'; $word = "你好!n"; $fh = fopen($filename, "a"); echo fwrite($fh, $word); fclose($fh); ?>
上面的例子在內容結尾添加了 n 換行符。要讓 n 在寫入文件時表示換行,寫入時需使用雙引號(如上面例子),如果使用單引號,n 字符不會被解釋為換行而是當做 n 字符串,點擊查看:PHP 字符串中單引號與雙引號的區別。
n 已經是真正意義上的換行,在 windows 操作系統上如果要模擬回車換行(即用寫字板打開文件時,不是黑方塊而是一行一行的列出),可以在 n 前面加入 r 回車符:
<?php $word = "你好!rn"; ?>
PHP fwrite 寫入權限
當打開一個已經存在的文件(通常是追加寫入模式下),有必要檢測該文件是否具有寫入權限,從而避免一個系統錯誤的發生。使用 is_writable 函數檢測文件是否可寫。
下面是追加寫入模式下一個比較嚴格檢查的例子:
<?php $filename = 'file.txt'; $word = "你好!n"; // 確定文件存在並且可寫 if (is_writable($filename)) { //打開文件 if (!$fh = fopen($filename, 'a')) { echo "不能打開文件 $filename"; exit; } // 寫入內容 if (fwrite($fh, $word) === FALSE) { echo "不能寫入到文件 $filename"; exit; } echo "成功地將 $word 寫入到文件 $filename"; fclose($fh); } else { echo "文件 $filename 不可寫"; } ?>
PHP fwrite 函數只是執行向文件寫入字符串的動作,實際它的行為結果取決於 fopen 函數更多一些。