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

Understanding fopen Read Write Modes أوضاع فتح الملفات r و r+ و w و a و x في fopen

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

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

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

تربط الدالة fopen() ملفاً أو مجرى بيانات بمؤشر قراءة وكتابة، وتحدد عبر رمز الوضع ما إذا كان مسموحاً بالقراءة أو التعديل أو المسح أو الإنشاء.

  • استخدم الوضع "r" للقراءة فقط من البايت 0، أو الوضع "r+" للقراءة والكتابة فوق البايتات الحالية دون مسح محتوى الملف مسبقاً.
  • استخدم الوضع "w" فقط عندما تريد عن قصد تفريغ محتوى الملف القديم بالكامل إلى 0 بايت فور فتحه.
  • استخدم الوضع "a" للإلحاق الآمن في نهاية الملف، أو الوضع "x" لإنشاء ملف جديد تماماً مع رفض الفتح إذا كان موجوداً مسبقاً.

فتح المجرى php://memory بالوضع "r+" يسمح بكتابة 17 بايت، ثم إعادة المؤشر للبايت 0 وقراءة أول 6 بايتات.

مخطط توضيحي: محاكي أوضاع فتح الملفات وحركة المؤشر التفاعلي (fopen / fseek / flock)
PHP
<?php
$fp = fopen('php://memory', 'r+');
fwrite($fp, "ID:100|STATUS:NEW");
rewind($fp);
$firstChunk = fread($fp, 6);
echo "Mode r+ read: $firstChunk\n";
fclose($fp);