انتقل إلى محتوى الدرس

PHP File Stream Modes Reference Table الجدول المرجعي الشامل لأوضاع فتح الملفات في PHP

تحكم في مؤشر القراءة والكتابة بدقة عبر أوضاع fopen ودوال ftell وfseek وrewind، وامنع تضارب الكتابة المتزامنة بقفل الملفات flock.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

اختيار وضع الفتح الصحيح في fopen() يحمي البيانات الحالية من المسح غير المقصود ويمنح السكريبت تحكماً دقيقاً بالمؤشر.

  • فضّل الوضع "c+" على "w+" عند دمج تصفير الملف مع flock() حتى لا ترى العمليات المنتظرة ملفاً ممسوحاً قبل القفل.
  • استخدم الوضع "a" لسجلات الأحداث والأخطاء لأن نظام التشغيل يفرض إلحاق كل كتابة في نهاية الملف بغض النظر عن fseek().
  • اربط دائماً كل استدعاء fopen() بالدالة fclose($fp) لتحرير مقابض الملفات في نظام التشغيل فوراً.

تفحص الدالة stream_get_meta_data($fp) وضع المجرى النشط، وتقرأ stream_get_contents($fp) كامل البايتات المتبقية من موقع المؤشر.

الوضعالقراءة / الكتابةموقع المؤشر الابتدائيإذا كان الملف موجوداً / مفقوداً
"r" / "r+"Read / Read+WriteByte 0 (Start)Keeps content / Fails (false)
"w" / "w+"Write / Read+WriteByte 0 (Start)Truncates to 0 / Creates file
"a" / "a+"Append / Read+AppendEOF (End of file)Keeps content / Creates file
"x" / "c+"Create / Safe R+WByte 0 (Start)x fails if exists / c+ keeps content

PHP
<?php
$fp = fopen('php://temp', 'w+');
fwrite($fp, "STREAM_OK");
rewind($fp);
$meta = stream_get_meta_data($fp);
$content = stream_get_contents($fp);
echo $meta['mode'] . " -> " . $content . "\n";
fclose($fp);
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

اختيار وضع الفتح الصحيح في fopen() يحمي البيانات الحالية من المسح غير المقصود ويمنح السكريبت تحكماً دقيقاً بالمؤشر. فضّل الوضع "c+" على "w+" عند دمج تصفير الملف مع flock() حتى لا ترى العمليات المنتظرة ملفاً ممسوحاً قبل القفل. استخدم الوضع "a" لسجلات الأحداث والأخطاء لأن نظام التشغيل يفرض إلحاق كل كتابة في نهاية الملف بغض النظر عن fseek(). اربط دائماً كل استدعاء fopen() بالدالة fclose($fp) لتحرير مقابض الملفات في نظام التشغيل فوراً.