PHP 檔案開啟/讀取/關閉
在本章中,我們將教你如何在伺服器上開啟、讀取和關閉檔案。
PHP 開啟檔案 - fopen()
開啟檔案的更好方法是使用 fopen()
函式。該函式比 readfile()
函式提供了更多選項。
在課程中,我們將使用文字檔案“webdictionary.txt”。
AJAX = Asynchronous JavaScript and XML (非同步 JavaScript 和 XML)
CSS = Cascading Style Sheets (層疊樣式表)
HTML = Hyper Text Markup Language (超文字標記語言)
PHP = PHP Hypertext Preprocessor (PHP 超文字預處理器)
SQL = Structured Query Language (結構化查詢語言)
SVG = Scalable Vector Graphics (可縮放向量圖形)
XML = EXtensible Markup Language (可擴充套件標記語言)
fopen()
的第一個引數包含要開啟的檔名,第二個引數指定開啟檔案的模式。下面的示例還在 fopen() 函式無法開啟指定檔案時生成一條訊息。
示例
<?php
$myfile = fopen("webdictionary.txt", "r") or die("無法開啟檔案!");
echo fread($myfile,filesize("webdictionary.txt"));
fclose($myfile);
?>
執行示例 »
提示: fread()
和 fclose()
函式將在下面解釋。
檔案可能以以下模式之一開啟
模式 | 描述 |
---|---|
r | 以只讀模式開啟檔案。檔案指標指向檔案開頭 |
w | 以只寫模式開啟檔案。擦除檔案內容或建立新檔案(如果不存在)。檔案指標指向檔案開頭 |
a | 以只寫模式開啟檔案。保留檔案中的現有資料。檔案指標指向檔案末尾。如果檔案不存在,則建立新檔案 |
x | 為只寫模式建立新檔案。如果檔案已存在,則返回 FALSE 並顯示錯誤 |
r+ | 以讀/寫模式開啟檔案。檔案指標指向檔案開頭 |
w+ | 以讀/寫模式開啟檔案。擦除檔案內容或建立新檔案(如果不存在)。檔案指標指向檔案開頭 |
a+ | 以讀/寫模式開啟檔案。保留檔案中的現有資料。檔案指標指向檔案末尾。如果檔案不存在,則建立新檔案 |
x+ | 為讀/寫模式建立新檔案。如果檔案已存在,則返回 FALSE 並顯示錯誤 |
PHP 讀取檔案 - fread()
fread()
函式從開啟的檔案中讀取內容。
fread()
的第一個引數包含要讀取的檔名,第二個引數指定要讀取的最大位元組數。
以下 PHP 程式碼將“webdictionary.txt”檔案讀取到末尾
fread($myfile,filesize("webdictionary.txt"));
PHP 關閉檔案 - fclose()
fclose()
函式用於關閉已開啟的檔案。
關閉所有檔案是一個良好的程式設計習慣,尤其是在完成使用後。你不希望伺服器上執行著一個開啟的檔案佔用資源!
fclose()
需要要關閉的檔名(或儲存檔名的變數)
<?php
$myfile = fopen("webdictionary.txt", "r");
// 執行一些程式碼....
fclose($myfile);
?>
PHP 讀取單行 - fgets()
fgets()
函式用於從檔案中讀取一行。
下面的示例輸出了“webdictionary.txt”檔案的第一行
示例
<?php
$myfile = fopen("webdictionary.txt", "r") or die("無法開啟檔案!");
echo fgets($myfile);
fclose($myfile);
?>
執行示例 »
注意: 呼叫 fgets()
函式後,檔案指標已移動到下一行。
PHP 檢查檔案結束 - feof()
feof()
函式檢查是否已到達“檔案結束”(EOF)。
feof()
函式對於迴圈處理未知長度的資料非常有用。
下面的示例逐行讀取“webdictionary.txt”檔案,直到到達檔案末尾
示例
<?php
$myfile = fopen("webdictionary.txt", "r") or die("無法開啟檔案!");
// 輸出一行直到檔案末尾
while(!feof($myfile)) {
echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>
執行示例 »
PHP 讀取單個字元 - fgetc()
fgetc()
函式用於從檔案中讀取單個字元。
下面的示例逐個字元讀取“webdictionary.txt”檔案,直到到達檔案末尾
示例
<?php
$myfile = fopen("webdictionary.txt", "r") or die("無法開啟檔案!");
// 輸出一個字元直到檔案末尾
while(!feof($myfile)) {
echo fgetc($myfile);
}
fclose($myfile);
?>
執行示例 »
注意: 呼叫 fgetc()
函式後,檔案指標會移到下一個字元。
完整的 PHP 檔案系統參考
有關檔案系統函式的完整參考,請訪問我們的完整 PHP 檔案系統參考。