PHP 文件打开/读取/关闭
1. PHP 打开文件 - fopen()
相比 readfile() 函数,fopen() 提供了更灵活的文件处理方式。
fopen() 函数的首个参数包含要打开的文件名,第二个参数规定打开文件所用的模式。如果 fopen() 函数无法打开指定文件,则会生成一条消息。
代码示例:
<?php
$myfile = fopen("webdictionary.txt", "r") or die("无法打开文件!");
echo fread($myfile,filesize("webdictionary.txt"));
fclose($myfile);
?>1.1 文件打开模式
文件可以通过下列模式之一进行打开:
| 模式 | 描述 |
|---|---|
| r | 只读方式打开。文件指针从文件头开始。 |
| w | 只写方式打开。删除文件内容或在不存在时创建新文件。文件指针从文件头开始。 |
| a | 追加方式打开。保留文件内容并在末尾写入。若不存在则创建新文件。 |
| x | 只写方式创建新文件。若文件已存在,则返回 FALSE 并产生错误。 |
| r+ | 读写方式打开。文件指针从文件头开始。 |
| w+ | 读写方式打开。删除文件内容或在不存在时创建新文件。文件指针从文件头开始。 |
| a+ | 读/写追加方式打开。保留文件内容。若不存在则创建新文件。 |
| x+ | 读/写方式创建新文件。若文件已存在,则返回 FALSE 并产生错误。 |
2. PHP 读取文件 - fread()
fread() 函数从打开的文件中读取内容。
其第一个参数包含待读取文件的文件名,第二个参数规定待读取的最大字节数。
代码示例:
fread($myfile, filesize("webdictionary.txt"));3. PHP 关闭文件 - fclose()
fclose() 函数用于关闭已打开的文件。
在完成所有操作后关闭所有文件是一个良好的编程习惯。您不希望一个打开的文件持续占用服务器资源。
fclose() 需要待关闭文件的名称(或者更确切地说是指向该文件的变量):
代码示例:
<?php
$myfile = fopen("webdictionary.txt", "r");
// 一些执行代码...
fclose($myfile);
?>4. PHP 读取单行文件 - fgets()
fgets() 函数用于从文件中读取单行内容。
代码示例:
下例将输出 "webdictionary.txt" 的第一行:
<?php
$myfile = fopen("webdictionary.txt", "r") or die("无法打开文件!");
echo fgets($myfile);
fclose($myfile);
?>注意:调用 fgets() 后,文件指针会移动到下一行。
5. PHP 检查文件末尾 - feof()
feof() 函数检查是否已到达文件末尾 (EOF)。
feof() 对于遍历长度未知的文件非常有用。
代码示例:
下例逐行读取 "webdictionary.txt" 文件,直到文件末尾:
<?php
$myfile = fopen("webdictionary.txt", "r") or die("无法打开文件!");
// 输出单行直到文件末尾
while(!feof($myfile)) {
echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>6. PHP 读取单字符 - fgetc()
fgetc() 函数用于从文件中读取单个字符。
代码示例:
下例逐字符读取 "webdictionary.txt" 文件,直到文件末尾:
<?php
$myfile = fopen("webdictionary.txt", "r") or die("无法打开文件!");
// 输出单字符直到文件末尾
while(!feof($myfile)) {
echo fgetc($myfile);
}
fclose($myfile);
?>注意:调用 fgetc() 后,文件指针会移动到下一个字符。