程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中常用文件操作讀寫函數介紹

php中常用文件操作讀寫函數介紹

編輯:關於PHP編程

本文章介紹了下面幾個常用的文件操作函數 file_get_contents 讀取整個文件內容 fopen 創建和打開文件 fclose 關閉文件 fgets 讀取文件一行內容 file_exists 檢查文件或目錄是否存在 file_put_contents 寫入文件 fwrite 寫入文件

用 PHP 內置函數 file_exists 可以檢查某個文件或目錄是否存在。如果文件或目錄存在,file_exists 函數返回 TRUE,如果不存在,則返回 FALSE。

下面是一個簡單的檢查文件是否存在的實例代碼:

 代碼如下 復制代碼 <html><body><?php
$filename = "C:\blabla\php\hello.txt";
if (file_exists($filename)) 
{echo "The file $filename exists.";
}else  {
echo "The file $filename does not exist."
;}?>
</body>
</html>

如果文件存在,執行該 PHP 文件的顯示結果是:

The file C:blablaphphello.txt exists.
如果文件不存在,執行該 PHP 文件的顯示結果是:

The file C:blablaphphello.txt does not exist.
你也可以用file_exists 函數測試某個目錄是否存在,示例代碼如下:

 代碼如下 復制代碼

if (file_exists("C:\blabla\php"))
  {echo "yes";}
else
  {echo "no";}


用 PHP 內置函數 file_get_contents 可以讀取整個文件內容。

file_get_contents 函數讀取整個文件,返回一個字符串。file_get_contents 最簡單的寫法如下:

file_get_contents(filepath)
舉個例子,你有一個 .txt 文件,文件的路徑為:

C:blablaphphello.txt
下面的 php 代碼用 file_get_contents 函數讀取該文件,並輸出該文件內容:

 代碼如下 復制代碼 <html>
<body>
<?php
$f = file_get_contents("C:\blabla\php\hello.txt");
echo $f;?>
</body>
</html>

注意:由於文件路徑含有反斜槓,而在 PHP 字符串裡,反斜槓需要轉義,要用兩個反斜槓表示。(如果你忘記了 PHP 某些特殊字符的轉義,請翻閱前面所講的 PHP 字符串。)

file_get_contents 函數的返回值是所讀取的文件內容字符串,如果出錯,返回 FALSE。


使用 PHP 內置函數 fopen,可以打開一個文件。

打開文件
fopen 最簡單語法如下:

fopen(filepath,mode)
下面是打開一個文件的 PHP 代碼示例:

 代碼如下 復制代碼 <?php
$f = fopen("c:\data\info.txt", "r");
?>

其中,c:\data\info.txt 是文件路徑,r 表示打開文件的模式(mode) 為只讀 (read only) 模式。

fopen 函數打開文件的模式有以下幾種:

模式 (mode) 說明
r 只讀,文件指針在文件開始處。
r+ 讀和寫,文件指針在文件開始處。
w 只寫,文件指針在文件開始處,將文件長度截成0。

如果文件不存在,創建文件。
 
w+ 讀和寫,文件指針在文件開始處,將文件長度截成0。

如果文件不存在,創建文件。
 
a 只寫,文件指針在文件末尾處。

如果文件不存在,創建文件。
 
a+ 讀和寫,文件指針在文件末尾處。

如果文件不存在,創建文件。
 
x 只寫,文件指針在文件開始處。

如果文件已經存在,fopen () 函數返回 FALSE 並產生一個E_WARNING 級別的錯誤。

如果文件不存在,創建文件。
 
x+ 讀和寫,文件指針在文件開始處。

如果文件已經存在,fopen () 函數返回 FALSE 並產生一個E_WARNING 級別的錯誤。

如果文件不存在,創建文件。
 

如果成功打開文件,fopen 函數的返回值是一個文件指針資源 (a file pointer resource),如果出錯,返回 FALSE。

創建文件
選擇 fopen 函數參數 mode 的適當的值 ,你可以用 fopen 創建一個文件,比如:

 代碼如下 復制代碼

<?php
$f = fopen("c:\data\101.txt", "w");
$f = fopen("c:\data\102.txt", "w+");
$f = fopen("c:\data\103.txt", "a");
$f = fopen("c:\data\104.txt", "a+");
$f = fopen("c:\data\105.txt", "x");
$f = fopen("c:\data\106.txt", "x+");
?>

用 PHP 內置函數 fgets 可以讀取文件的一行內容。

fgets讀取文件一行內容的語法是:

fgets(filepointer)
下面我們舉個例子講述如何一行行讀取一個文件。

假設我們有一個 sites.txt 文件,該文件有三行,內容如下:

woyouxian.comblabla.cngoogle.com
sites.txt 的文件路徑是:

C:blablaphpsites.txt
我們用 PHP 一行行讀取文件內容,PHP代碼如下:

 代碼如下 復制代碼 <html>
<body>
<?php
$f= fopen("C:\blabla\php\sites.txt","r");
while (!feof($f)){ 
$line = fgets($f); 
echo "site: ",$line,"<br />";
}
fclose($f);?>
</body>
</html>

執行該 PHP 文件,返回的顯示結果是:

site: woyouxian.comsite: blabla.cnsite: google.com
該 PHP 代碼的第一行是打開文件,最後一行是關閉一個文件。當中的 while 循環語句表示,當文件沒有結束,就讀取一行,循環執行,直到文件指針到文章末尾為止。

feof 函數是PHP 的一個內置函數,用來測試文件指針是否已經到了文件末尾。如果是返回 TRUE,如果不是,返回 FALSE。eof 的英文意思就是 end of file,很容易記。

正常情況下,fgets 函數的返回值是一個字符串,如果出錯,返回 FALSE。


講述使用 PHP 內置函數 fclose 關閉一個文件。

fclose 函數語法如下:

fclose(filepointer)
如果成功,fclose 函數返回 TRUE,如果失敗,fclose 函數返回 FALSE。

下面是一個 fclose 函數的 PHP 代碼示例:

 代碼如下 復制代碼

<?php
$f = fopen("c:\data\info.txt", "r");
fclose($f);
?>


這一章節我們講述如何用 fopen, fwrite, fclose 來實現打開文件、寫入文件和保存關閉文件的這一系列的操作。重點講述 fwrite 函數。

PHP 內置函數 fwrite 用於寫入文件。

fwrite 函數的常用語法為:

fwrite(handle,string)
其中,參數 handle 表示文件指針資源 (通常由 fopen 函數創建),string 表示要寫入的內容。

下面一個PHP 代碼示例演示如何創建一個新文件,並寫入內容,然後保存並關閉文件:

 代碼如下 復制代碼 <html><body><?php
$f= fopen("C:\blabla\php\write.txt","w");
fwrite($f,"It is awesome.");fclose($f);echo "done";
?>
</body>
</html>

執行該 PHP 文件後,會創建一個路徑為 C:blablaphpwrite.txt 的文件,文件的內容是It is awesome.。

如果你想在現有文件上再追加內容,你只要修改 fopen 的 參數 mode 值即可,如下:

$f= fopen("C:\blabla\php\write.txt","a");
有關 fopen 函數的參數 mode 值,詳見 fopen。

fwrite 函數返回寫入文件的字節數 (number of bytes) ,如果出錯,返回 FALSE。

 

PHP 內置函數 file_put_contents 用於寫入文件。

file_put_contents 函數最簡單的寫法,可以只用兩個參數,一個是文件路徑,一個是要寫入的內容,語法如下:

file_put_contents(filepath,data)
如果文件不存在,file_put_contents 函數會自動創建文件;如果文件已存在,原有文件被重寫。

你可以利用 file_put_contents 函數創建並寫入一個新文件,或者重寫一個原有文件。

下面是一個使用 file_put_contents 函數的 PHP 代碼示例:

 代碼如下 復制代碼 <html><body>
<?php$path ="C:\blabla\filesys\one.txt";
$content = "one for all";
file_put_contents($path,$content);
if (file_exists($path))
 {echo "ok";}else  {echo "ng";}
?></body></html>

該 PHP 代碼示例會創建一個路徑為 C:blablafilesysone.txt 的文件,該文件的內容是 one for all 。

如果你想在一個已有文件上追加內容,你也可以使用file_put_contents 函數,只需要加一個參數即可。

file_put_contents(filepath,data,flags)
當 flags 的值為 FILE_APPEND 時,表示在已有文件上追加內容。

比如我們要在上面示例的C:blablafilesysone.txt 文件上追加內容,我們可以這樣寫:

 代碼如下 復制代碼 <html><body><?php
$path ="C:\blabla\filesys\one.txt";
$content = " all for one";
file_put_contents($path,$content,FILE_APPEND);
if (file_exists($path)) 
{echo "ok";}else  {echo "ng";}
?></body>
</html>

執行該 PHP 文件之後,我們再看 C:blablafilesysone.txt 文件,發現文件內容增加了,變成了:

one for all all for one
file_put_contents 函數返回寫入文件的字節數 (number of bytes) ,如果出錯,返回 FALSE。

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