PHP文件打开、读取、关闭操作函数语法及实例
- 2022年11月9日
- 813 次
在前面记载了PHP两种读取文件的方法readfile()和file_get_contents函数来读取文件,在PHP中使用这两个函数是直接打开文件,简单粗暴,而我们在日常打开文件的正常步骤应该是打开文件、读取文件、关闭文件这样的步骤,所以本文就对PHP打开文件、读取文件、关闭文件的函数进行记载和分享。
一、PHP打开文件函数fopen()
1、fopen()函数语法
fopen()函数在PHP中的主要功能是打开文件的函数,下面是fopen()函数的语法格式:
resource fopen (string $文件名, string 模式)
2、fopen()函数参数说明
(1)、fopen()函数的数据类型是资源类型数据。
(2)、fopen()函数内有两个参数,第一个参数是文件名,即文件的路径地址;第二个参数是打开文件的模式。
3、fopen()操作文件的模式
| 模式 | 说明 |
|---|---|
| r | 只读方式打开文件,将文件指针指向文件头。 |
| r+ | 读写方式打开文件,将文件指针指向文件头。 |
| w | 写入方式打开文件,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建 |
| w+ | 读写方式打开文件,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建 |
| a | 写入方式打开文件,将文件指针指向文件末尾。如果文件不存在则尝试创建 |
| a+ | 读写方式打开文件,将文件指针指向文件末尾。如果文件不存在则尝试创建之 |
| x | 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建 |
| x+ | 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建 |
以上就是fopen()操作文件的模式及模式说明,通常常用的模式有r、r+、w、w+、a、a+。
二、PHP读取文件函数fread()
fread()函数在PHP中是读取打开的文件资源的函数,下面是fread()函数的语法格式:
1、fread()函数语法格式:
string fread (resource $操作资源, int 读取长度)
2、fread()函数参数说明
(1)、fread()函数的数据类型是字符串类型。
(2)、fread()函数同样有两个参数,第一个参数是需要读取的资源,数据类型是资源型数据;第二个参数是需要读取的资源的长度,数据类型是整数型。
三、PHP关闭文件函数fclose()
fclose()函数是PHP中关闭文件的函数,下面是fclose()函数的语法格式:
1、fclose()函数语法格式:
bool fclose (resource $操作资源)
2、fclose()函数参数说明
(1)、fclose()函数的数据类型是布尔型。
(2)、fclose()函数只有一个参数,需要传入一个资源型数据。
四、PHP打开、读取、关闭文件操作实例
通过上面对fopen()、fread()、fclose()函数的学习,我使用这些函数对一个文件进行了操作。
<?php
//fopen()函数打开一个文件
$fo = fopen("abc.txt","r");
//使用var_dump()函数打印出这个文件的数据类型
var_dump($fo);
//使用fread()函数读取文件
$fr = fread($fo,120);
//使用fclose()关闭文件
fclose($fr);
//输出读取的文件
echo $fr;
?>
以上实例中在使用fclose()关闭文件时,因为关闭的$fr变量是个字符串数据类型,而fclose()函数要求传入的参数是资源型数据,所以这个地方报了Warning错误。
以上通过对fopen()、fread()、fclose()函数的学习,最后用一个PHP打开、读取、关闭文件操作实例来巩固了前面的学习,后续将记录和分享更多关于PHP操作文件的相关文章。
若非作者标注皆为李涛自留地原创文章,转载或复制请以超链接形式并注明出处。
- PHP array_merge_recursive() 和 array_replace() 详解:数组合并与替换 2026-07-02
- PHP面向对象接口如何使用 接口与抽象类的相同之处和区别 2022-12-11
- PHP cURL 实战教程:从入门到 REST API 调用 2026-06-30
- PHP array_keys() 函数详解:获取数组键名的 N 种姿势 2026-07-02
- PHP array_filter() 函数详解:按条件过滤数组元素 2026-07-02
- Nginx 504 Gateway Timeout超时详解:原因与优化方案 2026-07-02
