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 文件系统参考。