مدیریت فایل‌ها در PHP

خواندن، نوشتن، الحاق داده، آپلود فایل توسط کاربر و مدیریت فایل‌ها روی سرور.

نمای کلی

PHP قابلیت‌های قدرتمندی برای تعامل مستقیم با سیستم‌فایل سرور ارائه می‌دهد. شما می‌توانید فایل متنی ایجاد کرده، محتوای آن‌ها را بخوانید، لۆگ‌های سیستم را ذخیره نمایید یا فایل‌های تصاویری که کاربران آپلود کرده‌اند را ذخیره و مدیریت کنید.

خواندن و نوشتن فایل‌ها

سریع‌ترین توابع برای کارهای ساده متنی file_get_contents() (برای خواندن کل فایل) و file_put_contents() (برای نوشتن یا الحاق متن) هستند.

file-demo.php
<?php

$filename = "app.log";
$logEntry = "[" . date('Y-m-d H:i:s') . "] User logged in\n";

// Append new entry without overwriting existing content
file_put_contents($filename, $logEntry, FILE_APPEND);

// Read entire file contents
if (file_exists($filename)) {
    $content = file_get_contents($filename);
    echo nl2br(htmlspecialchars($content));
}

?>

آپلود فایل توسط کاربر

برای آپلود فایل، فرم HTML حتماً باید دارای ویژگی enctype="multipart/form-data" باشد. مشخصات فایل آپلود شده در متغیر $_FILES قرار گرفته و با تابع move_uploaded_file() ذخیره می‌شود.

مودهای باز کردن فایل در fopen

حالت (Mode) توضیح عملکرد
r فقط خواندن (اشاره‌گر در ابتدای فایل)
w فقط نوشتن (محتوای قبلی پاک می‌شود!)
a الحاق (Append - اضافه کردن به انتهای فایل)

خطرات امنیتی و اشتباهات رایج

آپلود پسوند‌های خطرناک (خطر اجرای کد روی سرور)

هرگز اجازه ندهید کاربر فایل‌هایی با پسوند .php آپلود کند. همیشه پسوند فایل، نوع MIME و پسوندهای مجاز (مانند jpg, png, pdf) را اعتبارسنجی کنید.

تمرین عملی

سیستم ثبت لاگ ساده‌ای بنویسید که هر بار صفحه‌ای بازدید می‌شود، تاریخ، زمان و IP کاربر را درون فایلی به نام visitors.log ذخیره کند.

بازگشت به نقشه راه