0

0

PHP怎么读取和写入文件_PHP文件读写操作详细说明【指南】

絕刀狂花

絕刀狂花

发布时间:2026-02-09 09:00:01

|

788人浏览过

|

来源于php中文网

原创

PHP文件操作有五种方法:一、file_get_contents/file_put_contents简洁读写;二、fopen/fgets/fwrite逐行控制;三、SplFileObject面向对象处理;四、readfile/fpassthru直接输出;五、file读数组+file_put_contents写数组。

php怎么读取和写入文件_php文件读写操作详细说明【指南】

如果您需要在PHP中处理文件内容,例如从文本文件中提取数据或将信息保存到磁盘,则必须使用内置的文件系统函数。以下是执行PHP文件读取和写入操作的具体方法:

一、使用file_get_contents和file_put_contents函数

这两个函数是PHP中最简洁的文件读写方式,适用于中小型文件,无需手动打开和关闭文件流,自动处理编码与资源管理。

1、使用file_get_contents读取整个文件内容并赋值给变量:file_get_contents('example.txt')

2、检查返回值是否为false以判断读取失败:if (false === $content) { /* 处理错误 */ }

立即学习PHP免费学习笔记(深入)”;

3、使用file_put_contents将字符串写入文件:file_put_contents('output.txt', 'Hello World');

4、添加FILE_APPEND标志追加内容而非覆盖:file_put_contents('log.txt', 'New entry', FILE_APPEND);

二、使用fopen配合fgets/fwrite进行逐行读写

该方法适合处理大文件或需逐行控制逻辑的场景,提供更精细的I/O控制能力,但需显式管理文件指针和资源释放。

1、调用fopen以只读模式打开文件:$handle = fopen('data.txt', 'r');

2、使用fgets逐行读取内容直至返回false:while (($line = fgets($handle)) !== false) { echo $line; }

3、使用fwrite向已打开的写入模式文件句柄写入数据:fwrite($handle, "Line content\n");

4、操作完成后必须调用fclose关闭文件句柄:fclose($handle);

三、使用SplFileObject面向对象方式操作文件

SplFileObject提供了面向对象接口,支持迭代器遍历、行号定位及CSV解析等高级功能,适合结构化文件处理任务。

1、实例化SplFileObject对象并指定文件路径:$file = new SplFileObject('list.txt');

MewXAI
MewXAI

一站式AI绘画平台,支持AI视频、AI头像、AI壁纸、AI艺术字、可控AI绘画等功能

下载

2、通过foreach遍历每一行:foreach ($file as $line) { echo trim($line); }

3、调用seek方法跳转到指定行号(从0开始):$file->seek(5);

4、使用fwrite方法写入内容(需以可写模式构造):$file = new SplFileObject('write.txt', 'w'); $file->fwrite('Data');

四、使用readfile和fpassthru直接输出文件内容

当目标是将文件原始字节直接发送至输出缓冲区(如下载或图片响应),应避免加载全部内容进内存,提高效率并降低内存占用

1、调用readfile直接输出文件并返回字节数:readfile('image.jpg');

2、设置Content-Type和Content-Length响应头确保客户端正确解析:header('Content-Type: image/jpeg'); header('Content-Length: ' . filesize('image.jpg'));

3、使用fopen打开文件后调用fpassthru传输剩余内容:$fp = fopen('document.pdf', 'rb'); fpassthru($fp); fclose($fp);

4、注意readfile和fpassthru均不进行内容修改,仅作透传,不可用于写入操作。

五、使用file函数将文件读入数组并用file_put_contents写入数组内容

file函数将文件按行分割为索引数组,便于对每行做独立处理;file_put_contents支持数组参数,自动以换行符连接后写入。

1、调用file读取文件为行数组,忽略空行和换行符:$lines = file('input.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

2、对数组元素进行过滤或修改,例如移除注释行:array_filter($lines, function($l) { return strpos($l, '#') !== 0; });

3、将处理后的数组写入新文件:file_put_contents('filtered.txt', $lines);

4、若需自定义分隔符,可先implode再写入:file_put_contents('joined.txt', implode('|', $lines));

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

799

2023.08.22

while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

100

2023.09.25

php中foreach用法
php中foreach用法

本专题整合了php中foreach用法的相关介绍,阅读专题下面的文章了解更多详细教程。

161

2025.12.04

go语言 面向对象
go语言 面向对象

本专题整合了go语言面向对象相关内容,阅读专题下面的文章了解更多详细内容。

56

2025.09.05

java面向对象
java面向对象

本专题整合了java面向对象相关内容,阅读专题下面的文章了解更多详细内容。

57

2025.11.27

fclose函数的用法
fclose函数的用法

fclose是一个C语言和C++中的标准库函数,用于关闭一个已经打开的文件,是文件操作中非常重要的一个函数,用于将文件流与底层文件系统分离,释放相关的资源。更多关于fclose函数的相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

334

2023.11.30

fgets在c语言中的用法
fgets在c语言中的用法

本专题整合了c语言中fgets用法介绍,阅读专题下面的文章了解更多详细内容。

16

2025.08.27

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

444

2023.08.03

Golang处理数据库错误教程合集
Golang处理数据库错误教程合集

本专题整合了Golang数据库错误处理方法、技巧、管理策略相关内容,阅读专题下面的文章了解更多详细内容。

67

2026.02.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 11.3万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号