PHP课程

浏览13598
更新时间2025-08-06

PHP 打开文件 - 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");
// 执行一些代码...
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 检查文件末尾 - feof()

feof() 函数检查是否已达到“文件末尾”(EOF)。

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

下例逐行读取 "webdictionary.txt" 文件,直到达到文件末尾:

实例

<?php
$myfile = fopen("webdictionary.txt", "r") or die("无法打开文件!");
// Output one line until end-of-file
while(!feof($myfile)) {
  echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>

运行实例

PHP 读取单个字符 - fgetc()

fgetc() 函数用于从文件中读取单个字符。

下例逐字符读取 "webdictionary.txt" 文件,直到达到文件末尾:

实例

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

运行实例

注意:在调用 fgetc() 函数后,文件指针移至下一个字符。

完整的 PHP 文件系统参考手册

如需获取文件系统函数的完整参考,请查看我们的完整 PHP 文件系统参考手册。

相关视频

更多

免费

php8,我来也
初级php8,我来也

34万次学习

收藏

免费

Thinkphp6.0正式版视频教程
中级Thinkphp6.0正式版视频教程

39.6万次学习

收藏

免费

细说PHP第一季
中级细说PHP第一季

31万次学习

收藏

精品课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

64.9万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

41.2万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

76.6万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

64.1万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

24.3万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

36.2万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

133.1万人学习

热门下载

更多
phpStudy 2018最新版
phpStudy 2018最新版

集成PHP7,16种组合,超全大合集

下载

VC9 32位
VC9 32位

VC9 32位 phpstudy集成安装环境运行库

下载

VC11 32位
VC11 32位

VC11 32位 phpstudy集成安装环境运行库​

下载

php程序员工具箱完整版
php程序员工具箱完整版

程序员工具箱 v1.0 php集成环境

下载

VC14 32位
VC14 32位

VC14 32位 phpstudy安装环境运行库

下载

SublimeText3汉化版
SublimeText3汉化版

中文版,非常好用

下载

Notepad++ Windows版
Notepad++ Windows版

Notepad++ 8.9.7 Windows版官方安装包,适合 Windows 用户进行代码编辑、文本处理、语法高亮和插件扩展配置。

下载