当前位置:首页 > PHP

php实现文件读写操作

2026-01-29 05:44:56PHP

文件读取操作

使用file_get_contents函数可以快速读取整个文件内容到一个字符串中。适合读取小文件,简单高效。

$content = file_get_contents('example.txt');
echo $content;

fopen配合fread适合处理大文件或需要逐行读取的场景。通过指定读取模式(如'r')和缓冲区大小控制读取过程。

$handle = fopen('example.txt', 'r');
$content = fread($handle, filesize('example.txt'));
fclose($handle);

file函数将文件按行读取到数组中,每行作为数组的一个元素。适合需要按行处理的场景。

$lines = file('example.txt');
foreach ($lines as $line) {
    echo $line;
}

文件写入操作

file_put_contents函数提供最简单的写入方式,可覆盖或追加内容。通过FILE_APPEND参数实现追加写入。

// 覆盖写入
file_put_contents('output.txt', 'Hello World');

// 追加写入
file_put_contents('output.txt', "\nNew line", FILE_APPEND);

fopen配合fwrite支持更灵活的写入控制。需要手动关闭文件句柄防止资源泄漏。

$handle = fopen('output.txt', 'w');
fwrite($handle, 'First line');
fwrite($handle, "\nSecond line");
fclose($handle);

文件指针操作

ftell获取当前指针位置,fseek移动指针位置,rewind重置指针到文件开头。适用于需要随机访问的场景。

$handle = fopen('example.txt', 'r');
fseek($handle, 10); // 移动到第10字节
echo ftell($handle); // 输出当前位置
rewind($handle);     // 重置到开头
fclose($handle);

错误处理

文件操作时应始终检查操作结果并处理可能出现的错误。is_readableis_writable可预先检查权限。

if (!file_exists('example.txt')) {
    die('文件不存在');
}

if (!is_writable('output.txt')) {
    die('文件不可写');
}

二进制文件处理

使用'b'模式标记处理二进制文件,如图片或可执行文件。防止不同系统下的换行符转换问题。

// 二进制读取
$handle = fopen('image.jpg', 'rb');
$data = fread($handle, filesize('image.jpg'));
fclose($handle);

// 二进制写入
$handle = fopen('copy.jpg', 'wb');
fwrite($handle, $data);
fclose($handle);

临时文件处理

tmpfile创建临时文件,脚本结束后自动删除。sys_get_temp_dir获取系统临时目录路径。

$temp = tmpfile();
fwrite($temp, "Temporary data");
fseek($temp, 0);
echo fread($temp, 1024);
// 脚本结束自动删除

php实现文件读写操作

标签: 操作文件
分享给朋友:

相关文章

vue实现文件下载

vue实现文件下载

使用 Blob 对象和 URL.createObjectURL 通过创建 Blob 对象生成文件内容,利用 URL.createObjectURL 生成临时链接,再通过动态创建 <a> 标…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

java如何创建文件

java如何创建文件

使用 File 类创建文件 通过 File 类的 createNewFile() 方法创建文件。此方法返回布尔值,表示文件是否成功创建。 import java.io.File; import ja…

java如何读取文件

java如何读取文件

读取文件的常用方法 Java提供了多种读取文件的方式,适用于不同场景和需求。以下是几种常见的方法: 使用FileInputStream和BufferedInputStream读取二进制文件…

vue 实现文件目录

vue 实现文件目录

Vue 实现文件目录结构 Vue 项目通常采用模块化设计,合理的目录结构有助于代码维护和团队协作。以下是常见的 Vue 项目目录结构及说明: 基础目录结构(基于 Vue CLI 生成) pro…

vue文件下载实现

vue文件下载实现

使用 Blob 对象下载文件 在 Vue 中可以通过创建 Blob 对象实现文件下载。通过将后端返回的二进制数据转换为 Blob,再生成下载链接触发浏览器下载行为。 axios.get('/api…