⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

PHP 文件操作

学习文件读写 · 难度:入门 · +10XP

PHP 文件操作指南

PHP 提供了丰富的文件操作函数,可以轻松实现文件的读取、写入、上传和管理。文件操作是 Web 开发中的常见需求:读取配置文件、保存用户上传的图片、输出日志记录、生成 CSV 报表等。PHP 的文件函数大多数直接封装了 C 语言的文件操作,简单易用。

文件读取

PHP 提供了多种读取文件的方式。你可以一次性读取整个文件,也可以按行或按字节逐步读取。选择哪种方式取决于文件大小和你的需求。

<?php
// 方式一:一次性读取整个文件到字符串
$content = file_get_contents('data.txt');
echo $content;

// 方式二:按行读取到数组 $lines = file('data.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); foreach ($lines as $line) { echo "行内容: " . $line . " "; }

// 方式三:逐行读取(适合大文件,节省内存) $handle = fopen('large.log', 'r'); if ($handle) { while (($line = fgets($handle)) !== false) { // 处理每一行 echo $line; } fclose($handle); } ?>

文件写入

模式含义文件不存在时
'w'写入模式,清空原有内容从头写入自动创建
'a'追加模式,新内容添加到文件末尾自动创建
'r+'读写模式,从开头读写,不清空报错
'w+'读写模式,清空原有内容自动创建
<?php
// 写入字符串到文件
$data = "这是要写入的内容。
";
file_put_contents('output.txt', $data);

// 追加内容 file_put_contents('output.txt', "追加的文本 ", FILE_APPEND);

// 使用 fopen + fwrite(更灵活) $fh = fopen('log.txt', 'a'); fwrite($fh, date('Y-m-d H:i:s') . " - 用户登录 "); fclose($fh); ?>

文件信息与检查

在对文件进行操作之前,最好先检查文件是否存在、是否可读可写。PHP 提供了多个函数来获取文件的状态信息。

<?php
$file = 'document.pdf';

// 文件检查 if (file_exists($file)) { echo "文件大小: " . filesize($file) . " 字节 "; echo "最后修改: " . date('Y-m-d H:i:s', filemtime($file)) . " "; echo "是否可读: " . (is_readable($file) ? '是' : '否') . " "; echo "文件类型: " . mime_content_type($file) . " "; }

// 路径信息 $path = '/var/www/uploads/avatar.jpg'; echo "目录: " . dirname($path) . " "; echo "文件名: " . basename($path) . " "; echo "扩展名: " . pathinfo($path, PATHINFO_EXTENSION) . " ";

// 目录操作 $files = scandir('./uploads'); // 列出目录中所有文件 foreach ($files as $f) { if ($f !== '.' && $f !== '..') { echo $f . " "; } } ?>

CSV 文件处理

CSV(逗号分隔值)是数据交换中最常用的格式之一。PHP 内置了 fgetcsv()fputcsv() 函数,可以方便地读取和生成 CSV 文件。

  1. 编写脚本读取一个文本文件,统计其中的行数和字符总数
  2. 实现一个简单的留言板:将用户提交的留言追加保存到 messages.txt 文件中
  3. 将 10 条学生成绩数据(姓名, 语文, 数学, 英语)写入 CSV 文件,再从 CSV 读取计算平均分
  4. 创建一个简单的日志功能,每次页面访问时记录 IP 地址、访问时间和页面 URL
  5. 编写函数递归遍历指定目录,列出所有文件的路径和大小
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 90 篇
0 完成
🔥 0