شرح صفوف ومحتوى الفقرة
تعتمد عمليات الوصول العشوائي في الملفات على الدالة fseek() للقفز المباشر إلى أي إزاحة بالبايت، وعلى rewind() لإعادة المؤشر إلى نقطة الصفر.
- تضع
fseek($fp, $offset, SEEK_SET)المؤشر عند$offsetبايت من بداية الملف (وهو الوضع الافتراضي). - يحرك الثابت
SEEK_CURالمؤشر نسبةً إلى موقعه الحالي، بينما يحركهSEEK_ENDنسبةً إلى نهاية الملف (غالباً بقيم سالبة). - تُعد
rewind($fp)اختصاراً مباشراً للأمرfseek($fp, 0, SEEK_SET)كما أنها تمسح علامة الوصول لنهاية الملف.
تقفز fseek($fp, 11, SEEK_SET) مباشرة إلى البايت 11 لقراءة "9841"، ثم تعود للبايت 0 لقراءة "2026".
PHP
<?php
$fp = fopen('php://memory', 'r+');
fwrite($fp, "2026-ORDER-9841");
fseek($fp, 11, SEEK_SET);
$orderId = fread($fp, 4);
fseek($fp, 0, SEEK_SET);
$year = fread($fp, 4);
echo "Year: $year | Order: $orderId\n";
fclose($fp);