PHP如何讀寫文件

PHP讀寫文件,就如同ASP中使用FSO進行文件的讀寫操作。當然在ASP中FSO僅對於運行當前程序的服務器磁盤上文件進行讀寫(很明顯就是需要獲得物理路徑),然而PHP可以通過FTP或HTTP打開文件進行讀寫。

一,PHP如何讀取文件

PHP讀取文件可以讀取當前服務器或遠程服務器中的文件。其步驟是:打開文件、讀文件和關閉文件。

1,PHP如何打開文件

使用PHP函數fopen()打開一個文件,fopen()一般使用2個參數表示打開文件的路徑和文件模式。比如:


$fp=fopen("../cnbruce.txt",'w');

其中 "../cnbruce.txt" 就表示打開的cnbruce.txt文件的路徑(相對當前執行程序文件的路徑),'w'表示以只寫的方式打開該文本文件。

附錄:fopen()函數的文件模式總結

r    只讀——讀模式,打開文件,從文件頭開始讀
r+    可讀可寫方式打開文件,從文件頭開始讀寫
w    只寫——寫方式打開文件,同時把該文件內容清空,把文件指針指向文件開始處。如果該文件已經存在,將刪除文件已有內容;如果該文件不存在,則建立該文件
w+    可讀可寫方式打開文件,同時把該文件內容清空,把文件指針指向文件開始處。如果該文件不存在,則建立該文件
a    追加    以只寫方式打開文件,把文件指針指向文件末尾處。如果該文件不存在,則建立該文件
a+    追加    以可讀可寫方式打開文件,把文件指針指向文件末尾處。如果該文件不存在,則建立該文件
b    二進制    用於於其他模式進行連接。建議使用該選項,以獲得更大程度的可移植性

注意,如果fopen()函數調用失敗,函數將返回false。否則返回指針數據。所以一般在打開了文件後\讀寫文件前需要檢測下文件是否存在。


<?php
@ $fp=fopen("http://www.cnbruce.com/abc123",'w');
if (!$fp)
{
    echo'文件不存在';
    exit;
}
?>

其中@符號表示PHP將抑制所有由當前函數調用產生的錯誤。

2,PHP如何讀文件

在PHP打開了文件之後就需要對文件進行讀取,一般是使用fgets()函數

該函數可以從文件中每次讀取一行內容,其不斷讀入數據,值到遇到本行的換行符,或者全文的結束符號EOF。

介於fgets()函數只能讀取一行數據,所以若需要讀取文件的所有數據,須使用循環語句來完成。比如:


while (!feof($fp))
{
    $bruce=fgets($fp);
    echo $bruce;
}

其中feof()函數是用來檢測文件是否結束的。該函數唯一參數就是文件指針(即$fp對應打開的文件)。

當然,在PHP中還可以使用readfile()函數一次讀取整個文件。該函數包括了打開文件、讀取文件並輸出到瀏覽器中和關閉文件。比如:


<?php
$bruce=readfile("http://www.cnbruce.com");
echo $bruce;
?>

3,PHP如何關閉文件

使用函數fclose()就可以將文件關閉。

二,PHP如何寫數據到文件

與PHP讀取文件一樣,PHP寫入文件也需要:打開文件、寫入數據和關閉文件。打開和關閉文件的方法上面已經說明,那PHP中寫入數據到文件是怎樣的呢。

使用fwrite()函數,比如fwrite(文件路徑,寫入內容)



<?php
$bruce=fopen("http://www.cnbruce.com/","r");
if(!$bruce)
{
    echo'文件不存在';
    exit;
}
while (!feof($bruce))
{
    $rose=fgets($bruce);
        $james=fopen("index.htm","a");
        fwrite($james,$rose);
        fclose($james);
}
fclose($bruce);
?>
<a href="index.htm">將cnbruce.com的內容生成了本地文件</a>


瞭解了PHP的讀寫文件,就可以把最簡單的數據存入文本保存了。也就可以做個故事接龍了。

=============================
其他有用的文件函數:

file_exists():查看文件是否存在,返回布爾值
filesize():查看文件大小,可直接echo輸出
unlink():刪除文件,注意PHP中沒有delete函數。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章