PHP 文件打开/读取/关闭

在本节中,我们向您讲解如何在服务器上打开、读取以及关闭文件。

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() 函数未能打开指定的文件,下面的例子会生成一段消息:

Instance

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

Run Instance

提示:我们接下来将学习 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() 函数用于关闭打开的文件。

Tushen:用完文件后把它们全部关闭是一个良好的编程习惯。您并不想打开的文件占用您的服务器资源。

fclose() 需要待关闭文件的名称(或者存有文件名的变量):

<?php
$myfile = fopen("webdictionary.txt", "r");
// some code to be executed....
fclose($myfile);
?>

PHP 读取单行文件 - fgets()

fgets() 函数用于从文件读取单行。

ناوی فایل 'webdictionary.txt' تائوکوکا:

Instance

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

Run Instance

Tushen:调用 fgets() 函数之后,文件指针会移动到下一行。

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

feof() 函数检查是否已到达 "end-of-file" (EOF)。

feof() 对于遍历未知长度的数据很有用。

Kamar yadda yake, wa'ida da ta fiye a cikin fiye da wucewar da takaddama na baya, "webdictionary.txt":

Instance

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Output single line until end-of-file
while(!feof($myfile)) {
  echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>

Run Instance

PHP fiye da samar da koyi fiye da fgetc()

fgetc() fonksiyo wani koyi fiye da samar da koyi fiye da fiye daga fiye da wucewar.

Kamar yadda yake, wa'ida da ta fiye a cikin fiye da wucewar da takaddama na baya, "webdictionary.txt":

Instance

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Output single character until end-of-file
while(!feof($myfile)) {
  echo fgetc($myfile);
}
fclose($myfile);
?>

Run Instance

Tushen:Baya fgetc() fonksiyo, akwai tsari na fiye a cikin wucewar da takaddama na baya.

PHP Filesystem Refaransu

Don samar da kiyayya na PHP Filesystem Refaransu, za a baiwa CodeW3C.com. PHP Filesystem Refaransu.