PHP文件系统操作:初学者完全指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

引言:为什么PHP需要处理文件?

任何Web项目迟早都会遇到需要在服务器上保存数据的情况。无论是上传用户头像、创建错误日志还是生成报告,所有这些都需要管理文件和文件夹的能力。PHP提供了一套强大的文件系统操作函数,掌握它们并不像看起来那么困难。

在本文中,我们将介绍基本操作:创建、读取、写入、删除文件和目录,以及检查访问权限。所有示例均使用纯PHP编写,可直接用于您的项目。



1. 基础:打开、读取和写入文件

在对文件进行操作之前,需要先打开它。在PHP中,使用fopen()函数来完成。该函数返回一个资源(文件指针),随后可以对其进行操作。



文件打开模式

fopen()的第二个参数是访问模式。以下是最常用的模式:

  • 'r' — 只读,指针位于文件开头。
  • 'w' — 写入(创建文件或清空已有文件)。
  • 'a' — 追加到文件末尾(如果文件不存在则创建)。
  • 'x' — 创建并写入;如果文件已存在则报错。


示例:向文件写入文本

<?php$filename = 'test.txt';$file = fopen($filename, 'w') or die('无法打开文件');$text = "你好,世界!";fwrite($file, $text);fclose($file);echo '文件写入成功';?>

写入后,务必使用fclose()函数关闭文件——这样可以释放系统资源。



逐行读取文件

<?php$file = fopen('test.txt', 'r');while (!feof($file)) {    $line = fgets($file);    echo $line . '<br>';}fclose($file);?>

feof()函数检查是否已到达文件末尾。fgets()读取一行内容。



更简单的替代方法

对于快速操作,PHP提供了封装函数:

  • file_get_contents($filename) — 将整个文件读入一个字符串。
  • file_put_contents($filename, $data) — 将字符串写入文件(创建或覆盖)。
<?php// 读取$content = file_get_contents('test.txt');echo $content;

// 写入file_put_contents('new.txt', '简单写入');?>


2. 目录管理:创建、删除、导航

在PHP中操作文件夹几乎与操作文件一样简单。主要函数有mkdir()、rmdir()和scandir()。



创建文件夹

<?php$dir = 'uploads';if (!is_dir($dir)) {    mkdir($dir, 0777, true);    echo '文件夹已创建';} else {    echo '文件夹已存在';}?>

参数0777是访问权限(掩码)。第三个参数true允许递归创建嵌套目录(例如images/2024/)。



删除文件夹

rmdir()函数只能删除空目录。如果目录内有文件,需要先清空它:

<?phpfunction removeDir($dir) {    if (!is_dir($dir)) return;    $items = scandir($dir);    foreach ($items as $item) {        if ($item == '.' || $item == '..') continue;        $path = $dir . '/' . $item;        if (is_dir($path)) {            removeDir($path);        } else {            unlink($path);        }    }    rmdir($dir);}removeDir('temp');echo '文件夹已删除';?>


获取文件夹中的文件列表

<?php$files = scandir('uploads');foreach ($files as $file) {    if ($file != '.' && $file != '..') {        echo $file . '<br>';    }}?>


3.

博客

书籍推荐