溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP怎么創(chuàng)建文件及寫入數(shù)據(jù)

發(fā)布時間:2021-06-07 11:18:15 來源:億速云 閱讀:367 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)PHP怎么創(chuàng)建文件及寫入數(shù)據(jù),小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

這里主要介紹了PHP創(chuàng)建文件,并向文件中寫入數(shù)據(jù),覆蓋,追加的實現(xiàn)代碼,需要的朋友可以參考下:

創(chuàng)建文件我們用到函數(shù)

fopen ( string filename, string mode )

參數(shù):

filename:創(chuàng)建文件名

mode:以什么方式打開文件filename

其中mode可能值列表:

mode說明
‘r'只讀方式打開,將文件指針指向文件頭。
‘r+'讀寫方式打開,將文件指針指向文件頭。
‘w'寫入方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建之。
‘w+'讀寫方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建之。
‘a(chǎn)'寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之。
‘a(chǎn)+'讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之。
‘x'創(chuàng)建并以寫入方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調(diào)用失敗并返回 FALSE,并生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創(chuàng)建之。這和給 底層的 open(2) 系統(tǒng)調(diào)用指定 O_EXCL|O_CREAT 標(biāo)記是等價的。此選項被 PHP 4.3.2 以及以后的版本所支持,僅能用于本地文件。
‘x+'創(chuàng)建并以讀寫方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調(diào)用失敗并返回 FALSE,并生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創(chuàng)建之。這和給 底層的 open(2) 系統(tǒng)調(diào)用指定 O_EXCL|O_CREAT 標(biāo)記是等價的。此選項被 PHP 4.3.2 以及以后的版本所支持,僅能用于本地文件。

下面代碼是我通過利用函數(shù)fopen創(chuàng)建一個名為Demo,格式為txt的文件,并在文件中寫入"Welcome To ItCodeWorld!"的數(shù)據(jù)。

<?php
//要創(chuàng)建的兩個文件
$TxtFileName = "Demo.txt";
//以讀寫方式打?qū)懼付ㄎ募绻募淮鎰t創(chuàng)建
if( ($TxtRes=fopen ($TxtFileName,"w+")) === FALSE){
echo("創(chuàng)建可寫文件:".$TxtFileName."失敗");
exit();
}
echo ("創(chuàng)建可寫文件".$TxtFileName."成功!</br>");
$StrConents = "Welcome To ItCodeWorld!";//要 寫進(jìn)文件的內(nèi)容
if(!fwrite ($TxtRes,$StrConents)){ //將信息寫入文件
echo ("嘗試向文件".$TxtFileName."寫入".$StrConents."失敗!");
fclose($TxtRes);
exit();
}
echo ("嘗試向文件".$TxtFileName."寫入".$StrConents."成功!");
fclose ($TxtRes); //關(guān)閉指針
?>

PHP 創(chuàng)建文件 – fopen()

fopen() 函數(shù)也用于創(chuàng)建文件。也許有點(diǎn)混亂,但是在 PHP 中,創(chuàng)建文件所用的函數(shù)與打開文件的相同。

如果您用 fopen() 打開并不存在的文件,此函數(shù)會創(chuàng)建文件,假定文件被打開為寫入(w)或增加(a)。

下面的例子創(chuàng)建名為 "testfile.txt" 的新文件。此文件將被創(chuàng)建于 PHP 代碼所在的相同目錄中:

實例

$myfile = fopen("testfile.txt", "w")

PHP 文件權(quán)限

如果您試圖運(yùn)行這段代碼時發(fā)生錯誤,請檢查您是否有向硬盤寫入信息的 PHP 文件訪問權(quán)限。

PHP 寫入文件 – fwrite()

fwrite() 函數(shù)用于寫入文件。

fwrite() 的第一個參數(shù)包含要寫入的文件的文件名,第二個參數(shù)是被寫的字符串。

下面的例子把姓名寫入名為 "newfile.txt" 的新文件中:

實例

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

請注意,我們向文件 "newfile.txt" 寫了兩次。在每次我們向文件寫入時,在我們發(fā)送的字符串 $txt 中,第一次包含 "Bill Gates",第二次包含 "Steve Jobs"。在寫入完成后,我們使用 fclose() 函數(shù)來關(guān)閉文件。

如果我們打開 "newfile.txt" 文件,它應(yīng)該是這樣的:

Bill Gates
Steve Jobs

PHP 覆蓋(Overwriting)

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

在下面的例子中,我們打開一個已存在的文件 "newfile.txt",并向其中寫入了一些新數(shù)據(jù):

實例

<?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)在我們打開這個 “newfile.txt” 文件,Bill 和 Steve 都已消失,只剩下我們剛寫入的數(shù)據(jù):

Mickey Mouse
Minnie Mouse

換行符‘\n'和回車符‘\r'

顧名思義,換行符就是另起一行,回車符就是回到一行的開頭,所以我們平時編寫文件的回車符應(yīng)該確切來說叫做回車換行符

‘\n' 10 換行(newline)
‘\r' 13 回車(return)

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

在windows系統(tǒng)下,回車換行符號是”\r\n”.但是在Linux等系統(tǒng)下是沒有”\r”符號的。

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

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

PHP file_put_contents() 函數(shù)

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

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

語法:

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

參數(shù)說明:

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

例子:

<?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 以避免(見下)。
本函數(shù)可安全用于二進(jìn)制對象。

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

當(dāng)設(shè)置 flags 參數(shù)值為 FILE_APPEND 時,表示在已有文件內(nèi)容后面追加內(nèi)容的方式寫入新數(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() 的行為實際上等于依次調(diào)用 fopen(),fwrite() 以及 fclose() 功能一樣。

關(guān)于“PHP怎么創(chuàng)建文件及寫入數(shù)據(jù)”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI