Steve Jobs

PHP 覆蓋(Overwriting)

如果現(xiàn)在 “newfile.txt” 包含了一些數(shù)據(jù),我們可以展示在寫(xiě)入已有文件時(shí)發(fā)生的的事情。所有已存在的數(shù)據(jù)會(huì)被擦除并以一個(gè)新文件開(kāi)始。

在下面的例子中,我們打開(kāi)一個(gè)已存在的文件 “newfile.txt”,并向其中寫(xiě)入了一些新數(shù)據(jù):

實(shí)例

<?php
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "Mickey Mouse\n";
fwrite($myfile, $txt);
$txt = "Minnie Mouse\n";
fwrite($myfile, $txt);
fclose($myfile);
?>

如果現(xiàn)在我們打開(kāi)這個(gè) “newfile.txt” 文件,Bill 和 Steve 都已消失,只剩下我們剛寫(xiě)入的數(shù)據(jù):

Mickey Mouse
Minnie Mouse

換行符‘\n’和回車(chē)符‘\r’

顧名思義,換行符就是另起一行,回車(chē)符就是回到一行的開(kāi)頭,所以我們平時(shí)編寫(xiě)文件的回車(chē)符應(yīng)該確切來(lái)說(shuō)叫做回車(chē)換行符

‘\n’ 10 換行(newline)
‘\r’ 13 回車(chē)(return)

也可以表示為’\x0a’和’\x0d’.(16進(jìn)制)

在windows系統(tǒng)下,回車(chē)換行符號(hào)是”\r\n”.但是在Linux等系統(tǒng)下是沒(méi)有”\r”符號(hào)的。

在解析文本或其他格式的文件內(nèi)容時(shí),常常要碰到判定回車(chē)換行的地方,這個(gè)時(shí)候就要注意既要判定”\r\n”又要判定”\n”。

寫(xiě)程序時(shí)可能得到一行,將其進(jìn)行trim掉’\r’,這樣能得到你所需要的string了。

PHP file_put_contents() 函數(shù)

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

file_put_contents() 函數(shù)用于把字符串寫(xiě)入文件,成功返回寫(xiě)入到文件內(nèi)數(shù)據(jù)的字節(jié)數(shù),失敗則返回 FALSE。

語(yǔ)法:

int file_put_contents ( string filename, string data [, int flags [, resource context]] )

參數(shù)說(shuō)明:

參數(shù) 說(shuō)明
filename 要寫(xiě)入數(shù)據(jù)的文件名
data 要寫(xiě)入的數(shù)據(jù)。類(lèi)型可以是 string,array(但不能為多維數(shù)組),或者是 stream 資源
flags 可選,規(guī)定如何打開(kāi)/寫(xiě)入文件??赡艿闹担?br /> 1. FILE_USE_INCLUDE_PATH:檢查 filename 副本的內(nèi)置路徑
2. FILE_APPEND:在文件末尾以追加的方式寫(xiě)入數(shù)據(jù)
3. LOCK_EX:對(duì)文件上鎖
context 可選,Context是一組選項(xiàng),可以通過(guò)它修改文本屬性

例子:

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

運(yùn)行該例子,瀏覽器輸出:

18

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

提示

如果文件不存在,則創(chuàng)建文件,相當(dāng)于fopen()函數(shù)行為。
如果文件存在,默認(rèn)將清空文件內(nèi)的內(nèi)容,可設(shè)置 flags 參數(shù)值為 FILE_APPEND 以避免(見(jiàn)下)。
本函數(shù)可安全用于二進(jìn)制對(duì)象。

以追加形式寫(xiě)入內(nèi)容

當(dāng)設(shè)置 flags 參數(shù)值為 FILE_APPEND 時(shí),表示在已有文件內(nèi)容后面追加內(nèi)容的方式寫(xiě)入新數(shù)據(jù):

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

執(zhí)行程序后,test.txt 文件內(nèi)容變?yōu)椋?/p>

This is something.This is another something.

file_put_contents() 的行為實(shí)際上等于依次調(diào)用 fopen(),fwrite() 以及 fclose() 功能一樣。

贊(0)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享網(wǎng)絡(luò)內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-62778877-8306;郵箱:fanjiao@west.cn。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明出處:西部數(shù)碼知識(shí)庫(kù) » PHP創(chuàng)建文件及寫(xiě)入數(shù)據(jù)(覆蓋寫(xiě)入,追加寫(xiě)入)

登錄

找回密碼

注冊(cè)