PHP 文件写入功能实现
在PHP网站中,写入文档(文件)是一个常见需求,包括日志记录、数据导出、内容生成等功能。以下是完整的PHP文件写入实现方案。
基础文件写入方法
1. 使用函数(简单方式)
file_put_contents()
php
// 要写入的内容
$content = "这是要写入文件的内容\n第二行内容\n";
// 文件路径(确保目录有写入权限)
$filePath = '';
// 写入文件(会覆盖原有内容)
if (file_put_contents($filePath, $content) !== false) {
echo "文件写入成功!";
} else {
echo "文件写入失败!";
// 追加内容到文件
$additionalContent = "这是追加的内容\n";
if (file_put_contents($filePath, $additionalContent, FILE_APPEND) !== false) {
echo "内容追加成功!";
2. 使用和(更灵活的方式)
fopen()
fwrite()
php
// 文件路径
$filePath = 'data/log_' . date('Y-m-d') . '.log';
// 要写入的内容(可以是数组或字符串)
$logData = [
'time' => date('Y-m-d H:i:s'),
'message' => '用户登录成功',
'ip' => $_SERVER['REMOTE_ADDR'],
'user_agent' => $_SERVER['HTTP_USER_AGENT']
// 将数组转换为字符串(例如JSON格式)
$logEntry = json_encode($logData) . "\n";
// 以追加模式打开文件
$fileHandle = fopen($filePath, 'a');
if ($fileHandle) {
// 写入内容
if (fwrite($fileHandle, $logEntry) !== false) {
echo "日志记录成功!";
} else {
echo "写入文件失败!";
// 关闭文件句柄
fclose($fileHandle);
} else {
echo "无法打开文件!";
高级文件写入应用
1. CSV 文件写入
php
// 数据准备(二维数组)
$users = [
['ID', '用户名', '邮箱', '注册时间'],
[1, '张三', 'zhangsan@example.com', '2023-01-15'],
[2, '李四', 'lisi@example.com', '2023-02-20'],
[3, '王五', 'wangwu@example.com', '2023-03-10']
// 打开文件(写入模式会覆盖已有文件)
$filePath = 'exports/users.csv';
$fileHandle = fopen($filePath, 'w');
if ($fileHandle) {
// 写入每一行
foreach ($users as $user) {
fputcsv($fileHandle, $user);
fclose($fileHandle);
echo "CSV文件导出成功!";
} else {
echo "无法创建CSV文件!";
2. 安全日志记录(带锁机制)
php
function writeToLog($message, $logFile = 'app.log') {
// 确保目录存在
$logDir = dirname($logFile);
if (!is_dir($logDir)) {
mkdir($logDir, 0755, true);
// 获取独占锁并写入日志
$fileHandle = fopen($logFile, 'a');
if ($fileHandle) {
if (flock($fileHandle, LOCK_EX)) { // 独占锁
$logEntry = sprintf(
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.