PHP文件打開/讀取/讀取-3.5PHP高級教程

閱讀 ?·? 發布日期 2019-06-28 18:34 ?·? admin

在本節中,我們向您講解如何在服務器上打開、讀取以及關閉文件。

PHP Open File - fopen()

打開文件的更好的方法是通過 fopen() 函數。此函數為您提供比 readfile() 函數更多的選項。

在課程中,我們將使用文本文件 "webdictionary.txt":

AJAX = Asynchronous JavaScript and XML
CSS = Cascading Style Sheets
HTML = Hyper Text Markup Language
PHP = PHP Hypertext Preprocessor
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = EXtensible Markup Language

fopen() 的第一個參數包含被打開的文件名,第二個參數規定打開文件的模式。如果 fopen() 函數未能打開指定的文件,下面的例子會生成一段消息:

實例

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
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");
// some code to be executed....
fclose($myfile);
?>

PHP 讀取單行文件 - fgets()

fgets() 函數用于從文件讀取單行。

下例輸出 "webdictionary.txt" 文件的首行:

實例

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fgets($myfile);
fclose($myfile);
?>

注釋:調用 fgets() 函數之后,文件指針會移動到下一行。

PHP 檢查 End-Of-File - feof()

feof() 函數檢查是否已到達 "end-of-file" (EOF)。

feof() 對于遍歷未知長度的數據很有用。

下例逐行讀取 "webdictionary.txt" 文件,直到 end-of-file:

實例

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// 輸出單行直到 end-of-file
while(!feof($myfile)) {
  echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>

PHP 讀取單字符 - fgetc()

fgetc() 函數用于從文件中讀取單個字符。

下例逐字符讀取 "webdictionary.txt" 文件,直到 end-of-file:

實例

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// 輸出單字符直到 end-of-file
while(!feof($myfile)) {
  echo fgetc($myfile);
}
fclose($myfile);
?>

注釋:在調用 fgetc() 函數之后,文件指針會移動到下一個字符。

PHP Filesystem 參考手冊

如需完整的 PHP 文件系統參考手冊,請訪問 W3School 提供的 PHP Filesystem 參考手冊。