程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP創建文件,並向文件中寫入數據,覆蓋,追加的實現代碼

PHP創建文件,並向文件中寫入數據,覆蓋,追加的實現代碼

編輯:PHP綜合

創建文件我們用到函數

fopen ( string filename, string mode )
參數filename為創建文件名
參數mode為以什麼方式打開文件filename
其中mode可能值列表:

mode 說明

‘r' 只讀方式打開,將文件指針指向文件頭。
‘r+' 讀寫方式打開,將文件指針指向文件頭。
‘w' 寫入方式打開,將文件指針指向文件頭並將文件大小截為零。如果文件不存在則嘗試創建之。
‘w+' 讀寫方式打開,將文件指針指向文件頭並將文件大小截為零。如果文件不存在則嘗試創建之。
‘a' 寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。
‘a+' 讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。
‘x' 創建並以寫入方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗並返回 FALSE,並生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創建之。這和給 底層的 open(2) 系統調用指定 O_EXCL|O_CREAT 標記是等價的。此選項被 PHP 4.3.2 以及以後的版本所支持,僅能用於本地文件。
‘x+' 創建並以讀寫方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗並返回 FALSE,並生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創建之。這和給 底層的 open(2) 系統調用指定 O_EXCL|O_CREAT 標記是等價的。此選項被 PHP 4.3.2 以及以後的版本所支持,僅能用於本地文件。
下面代碼是我通過利用函數fopen創建一個名為Demo,格式為txt的文件,並在文件中寫入"Welcome To ItCodeWorld!"的數據。

< ?php
//要創建的兩個文件
$TxtFileName = "Demo.txt";
//以讀寫方式打寫指定文件,如果文件不存則創建
if( ($TxtRes=fopen ($TxtFileName,"w+")) === FALSE){
echo("創建可寫文件:".$TxtFileName."失敗");
exit();
}
echo ("創建可寫文件".$TxtFileName."成功!</br>");
$StrConents = "Welcome To ItCodeWorld!";//要 寫進文件的內容
if(!fwrite ($TxtRes,$StrConents)){ //將信息寫入文件
echo ("嘗試向文件".$TxtFileName."寫入".$StrConents."失敗!");
fclose($TxtRes);
exit();
}
echo ("嘗試向文件".$TxtFileName."寫入".$StrConents."成功!");
fclose ($TxtRes); //關閉指針
?>

PHP 創建文件 – fopen()
fopen() 函數也用於創建文件。也許有點混亂,但是在 PHP 中,創建文件所用的函數與打開文件的相同。
如果您用 fopen() 打開並不存在的文件,此函數會創建文件,假定文件被打開為寫入(w)或增加(a)。
下面的例子創建名為 "testfile.txt" 的新文件。此文件將被創建於 PHP 代碼所在的相同目錄中:
實例
$myfile = fopen("testfile.txt", "w")
PHP 文件權限
如果您試圖運行這段代碼時發生錯誤,請檢查您是否有向硬盤寫入信息的 PHP 文件訪問權限。
PHP 寫入文件 – fwrite()
fwrite() 函數用於寫入文件。
fwrite() 的第一個參數包含要寫入的文件的文件名,第二個參數是被寫的字符串。
下面的例子把姓名寫入名為 "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" 寫了兩次。在每次我們向文件寫入時,在我們發送的字符串 $txt 中,第一次包含 "Bill Gates",第二次包含 "Steve Jobs"。在寫入完成後,我們使用 fclose() 函數來關閉文件。
如果我們打開 "newfile.txt" 文件,它應該是這樣的:
Bill Gates
Steve Jobs

PHP 覆蓋(Overwriting)

如果現在 "newfile.txt" 包含了一些數據,我們可以展示在寫入已有文件時發生的的事情。所有已存在的數據會被擦除並以一個新文件開始。
在下面的例子中,我們打開一個已存在的文件 "newfile.txt",並向其中寫入了一些新數據:
實例

<?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);
?>

如果現在我們打開這個 “newfile.txt” 文件,Bill 和 Steve 都已消失,只剩下我們剛寫入的數據:

Mickey Mouse
Minnie Mouse


換行符‘\n'和回車符‘\r'
顧名思義,換行符就是另起一行,回車符就是回到一行的開頭,所以我們平時編寫文件的回車符應該確切來說叫做回車換行符

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

也可以表示為'\x0a'和'\x0d'.(16進制)
在windows系統下,回車換行符號是”\r\n”.但是在Linux等系統下是沒有”\r”符號的。
在解析文本或其他格式的文件內容時,常常要碰到判定回車換行的地方,這個時候就要注意既要判定”\r\n”又要判定”\n”。
寫程序時可能得到一行,將其進行trim掉'\r',這樣能得到你所需要的string了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved