PHP读取文件的五种常用方法:一、file_get_contents()一次性读入字符串;二、fopen()与fgets()逐行读取;三、file()按行存入数组;四、readfile()直接输出内容;五、SplFileObject面向对象迭代读取。

如果您需要在PHP中读取文件内容,但无法正确获取数据,则可能是由于文件路径错误、权限不足或函数使用不当。以下是实现PHP读取文件的常用方法:
一、使用file_get_contents()函数读取文件
该函数将整个文件内容一次性读入字符串,适用于小到中等大小的文本文件,语法简洁且无需手动打开/关闭文件流。
1、确保目标文件(如example.txt)存在于当前脚本可访问的目录下,并具有读取权限。
2、在PHP脚本中调用file_get_contents(),传入文件路径作为参数。
立即学习“PHP免费学习笔记(深入)”;
3、将返回值赋给变量,例如:$content = file_get_contents('example.txt');
4、使用echo或print输出变量内容以验证读取结果。
二、使用fopen()与fgets()逐行读取文件
该方式通过文件指针按行读取,适合处理大文件或需对每行内容进行独立处理的场景,内存占用较低且控制更精细。
1、使用fopen()以只读模式('r')打开文件,例如:$handle = fopen('example.txt', 'r');
2、检查返回值是否为有效资源,若为false则表示打开失败。
3、使用fgets()循环读取每一行,直到返回false为止。
4、每次读取后可对$row变量执行处理,例如:echo $row;
5、读取完成后调用fclose($handle)关闭文件指针。
三、使用file()函数将文件读入数组
该函数将文件按行分割并存入索引数组,每行作为数组的一个元素,便于后续遍历或索引操作。
1、调用file()函数并传入文件路径,例如:$lines = file('example.txt');
2、确认返回值是否为数组类型,避免空文件或路径错误导致返回false。
3、使用foreach循环遍历$lines数组,例如:foreach ($lines as $line) { echo trim($line) . '
'; }
4、注意每行末尾包含换行符,建议使用trim()去除空白字符。
四、使用readfile()直接输出文件内容
该函数不返回内容而是直接输出到浏览器或标准输出,常用于下载或显示原始文件内容,不经过变量中转。
1、确保Web服务器配置允许执行readfile(),且文件路径可被脚本访问。
2、调用readfile()并传入文件路径,例如:readfile('example.txt');
3、如需设置HTTP头(如Content-Type),应在readfile()前使用header()函数声明。
4、该函数返回读取的字节数,可用于错误判断,返回false表示失败。
五、使用SplFileObject面向对象方式读取
该方式提供面向对象接口,支持迭代器遍历、跳过空行、自动处理编码等高级特性,适合结构化文件处理需求。
1、实例化SplFileObject对象并传入文件路径,例如:$file = new SplFileObject('example.txt');
2、使用foreach遍历$file对象,每轮迭代自动获取一行内容。
3、调用$file->getCurrentLine()获取当前行,或$file->key()获取行号。
4、可启用setFlags(SplFileObject::SKIP_EMPTY | SplFileObject::READ_AHEAD)跳过空行并预读。











