العمل مع نظام الملفات في PHP: دليل شامل للمبتدئين

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة: لماذا يحتاج PHP إلى العمل مع الملفات؟

أي مشروع ويب سيحتاج عاجلاً أم آجلاً إلى حفظ البيانات على الخادم. سواء كان ذلك تحميل صورة المستخدم، أو إنشاء سجلات الأخطاء، أو إنشاء التقارير - كل هذا يتطلب القدرة على إدارة الملفات والمجلدات. يوفر PHP مجموعة قوية من الوظائف للعمل مع نظام الملفات، وإتقانها ليس بالأمر الصعب كما يبدو.

في هذه المقالة، سنستعرض العمليات الأساسية: إنشاء الملفات والدلائل وقراءتها وكتابتها وحذفها، بالإضافة إلى التحقق من أذونات الوصول. جميع الأمثلة مكتوبة بلغة PHP نقية وجاهزة للاستخدام في مشاريعك.



1. الأساسيات: فتح الملفات وقراءتها وكتابتها

قبل القيام بأي شيء مع ملف، يجب فتحه. لهذا، تُستخدم دالة fopen() في PHP. تقوم بإرجاع مورد (مؤشر للملف) يمكن العمل معه بعد ذلك.



أنماط فتح الملفات

المعامل الثاني لـ 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.

المدونات

توصيات الكتب