ESC
输入关键词搜索文章
目录

PHP File

文件操作核心函数

PHP 提供了丰富的文件系统函数。现代 PHP(8.x)中推荐优先使用 SplFileObjectFilesystemIterator 等 OOP 接口。

读取文件

// 一次性读取整个文件(适合小文件)
$content = file_get_contents('data.txt');

// 按行读取到数组
$lines = file('data.txt', FILE_IGNORE_NEW_LINES);

// 逐行处理(内存友好)
$handle = fopen('data.txt', 'r');
while (($line = fgets($handle)) !== false) {
    echo $line;
}
fclose($handle);

写入文件

// 覆盖写入
file_put_contents('output.txt', $data);

// 追加写入
file_put_contents('log.txt', $data . "\n", FILE_APPEND);

// 原子写入(先写临时文件再重命名,防并发)
tempnam($dir, $prefix);
file_put_contents($tmp, $data);
rename($tmp, 'output.txt');

安全注意事项

文件操作是 Web 应用中最容易出安全问题的环节之一:

// ❌ 危险:用户输入直接拼路径
$file = fopen($_GET['file'], 'r');

// ✅ 安全:验证路径
$allowed = ['data.txt', 'config.txt'];
$filename = basename($_GET['file']);
if (in_array($filename, $allowed)) {
    $content = file_get_contents("./uploads/{$filename}");
}

参考链接