شرح صفوف ومحتوى الفقرة
يحتفظ كل مجرى ملف مفتوح بمؤشر داخلي لموقع البايت، وتُرجع الدالة ftell() رقم ذلك البايت الحالي بدقة بدءاً من الصفر.
- فور فتح الملف بالوضع
"r"أو"w"، تُرجع الدالةftell($fp)القيمة0. - كل استدعاء للدوال
fread()أوfgets()أوfwrite()يُحرّك المؤشر الداخلي بمقدار عدد البايتات التي تمت معالجتها. - يتيح حفظ الرقم الصحيح الناتج عن
ftell()وضع علامة مرجعية لموقع محدد داخل ملف كبير للعودة إليه لاحقاً.
كتابة 10 أحرف تحرك المؤشر إلى البايت 10؛ وإعادة المؤشر للبداية ثم قراءة 4 بايتات تجعل ftell($fp) عند البايت 4.
PHP
<?php
$fp = fopen('php://memory', 'r+');
fwrite($fp, "ABCDEFGHIJ");
$afterWrite = ftell($fp);
rewind($fp);
fread($fp, 4);
$afterRead = ftell($fp);
echo "Write offset: $afterWrite | Read offset: $afterRead\n";
fclose($fp);