主题
  • 默认模式
  • 浅蓝色模式
  • 淡绿色模式
  • 深夜模式

PHP 文件处理

PHP 作为主流的服务器端脚本语言,拥有强大而完善的文件系统处理能力。其内置的多种文件操作函数使开发者能够高效地实现文件的创建、读取、写入、修改等操作,同时提供完善的权限控制和错误处理机制,确保服务器文件系统的安全访问与管理。无论是处理简单的文本文件还是复杂的二进制文件,PHP 都能提供稳定可靠的解决方案。


打开文件

PHP 使用fopen()函数打开文件,它需要两个参数:文件名和打开模式。

$file = fopen("kaicz.txt","r") or exit("Unable to open file!");

✅ 常见地打开模式包括:

模式 说明 文件不存在时
r 只读方式打开,文件指针指向文件开头 返回false
r+ 读写方式打开,文件指针指向文件开头 返回false
w 写入方式打开,清空文件内容 尝试创建
w+ 读写方式打开,清空文件内容 尝试创建
a 写入方式打开,文件指针指向文件末尾 尝试创建
a+ 读写方式打开,文件指针指向文件末尾 尝试创建
x 创建并以写入方式打开 返回false(如果文件已存在)
x+ 创建并以读写方式打开 返回false(如果文件已存在)
c 写入方式打开,不截断文件 尝试创建
c+ 读写方式打开,不截断文件 尝试创建

关闭文件

fclose() 函数用于关闭已打开的文件资源,这是一个良好的编程习惯,可以释放系统资源。

$file = fopen("kaicz.txt","r") or exit("Unable to open file!");

// 执行一些代码

fclose($file);

检测文件末尾(EOF)

feof() 函数用于检测是否已到达文件末尾(EOF)。在循环遍历未知长度的数据时,feof() 函数很有用。

if (feof($file)) echo "文件结尾";

指定长度读取文件

fread() 是 PHP 中用于从文件指针读取指定长度内容的函数。它需要两个参数:文件系统指针和要读取的最大字节数。

// 打开文件
$file = fopen("kaicz.txt","r") or exit("Unable to open file!");

// 读取前 100 个字节
$content = fread($file, 100);

// 关闭文件
fclose($file);

// 输出内容
echo $content;

逐行读取文件

fgets() 是 PHP 中用于逐行读取文件内容的函数。它需要两个参数:由fopen()打开的文件指针和每行读取的最大字节数。

最大字节数指每行读取最大字节(可选)。如果不设置,默认读取一行直到遇到换行符(\n\r\n)或文件结束(EOF)。

$file = fopen("kaicz.txt","r") or exit("Unable to open file!");
if ($file) {
    while (($line = fgets($file)) !== false) {
        echo $line . "
"; // 逐行输出内容 } fclose($file); // 关闭文件 } else { echo "无法打开文件!"; }

逐字符读取文件

fgetc() 是 PHP 中用于从文件指针处读取一个字符的函数。它需要一个参数:文件指针资源,必须是有效的、已打开的文件资源。

$file = fopen("kaicz.txt","r") or exit("Unable to open file!");
if ($file) {
    while (($char = fgetc($file)) !== false) {
        echo $char;
    }
    fclose($file);
}

文件写入操作

fwrite() 是 PHP 中用于向文件写入数据的函数。它需要三个参数:文件系统指针资源,通常由fopen()创建、要写入文件的字符串数据、指定写入长度(可选)。

$file = fopen("kaicz.txt", "w"); // 以写入模式打开文件
if ($file) {
    $bytes = fwrite($file, "Hello, World!"); // 写入内容
    fclose($file); // 关闭文件
    echo "成功写入 {$bytes} 字节。";
} else {
    echo "无法打开文件!";
}


评论区 0
发表评论