الوصول العشوائي إلى الملفات

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

Fseek
تحتاج هذه الدالة إلى عاملين ، العامل الأول هو مقبض الملف $fp والعامل الثاني هو عبارة عن رقم صحيح يسمونه كمصطلح بالـ(offset) أي المكان الذي سيتوقف فيه المؤشر ، سيقوم الـPHP بالتحرك في الملف إلي أن يصل إلى المكان الذي تم تحديده .. أي أنه إذا كان في الملف سطر واحد مكون من عشره حروف وقمنا بجعل الـoffset خمسة ، سيقوم الـPHP بالتحرك حتى يصل إلى نهاية الحرف الخامس ...
وهناك معامل ثالث اختياري لهذه الدالة ويسمونه كمصطلح بالـ (whence ) وله إحدى ثلاث خيارات :
Seek_set ويقوم بقراءة الملف من بدايته حتى يصل إلى المكان المطلوب بالـoffset
Seek_cur يقوم بالقراءة من المكان الحالي حتى يصل إلي المكان المطلوب بالـoffset
Seek_End يقوم بالقراءة من نهاية الملف حتى يصل إلي المكان المحدد بالoffset

تعتبر هذه الدالة نادرة في عملها ( أو كما يسميها المبرمجون شاذة) بسبب أنها تقوم بإرجاع القيمة (0) عند نجاحها والقيمة (-1) عند حصول خطأ ما ..

مثال :
قم بفتح ملف واكتب فيه ثمان حروف متتالية ثم قم بحفظه باسم file.txt ثم قم بوضعه مع ملف PHP فيه الشفرة التالية ، ثم بعد ذلك شغل ملف الـPHP وانتظر النتيجة :
كود:
 <?
$fp = fopen("file.txt");
fseek($fp,4,SEEK_SET);
fpassthru($fp);
?>
Ftell
هذه الدالة من الدوال المفيدة فهي تقوم بإرجاع مكان الـoffset ( أو المؤشر الوهمي) في الملف وتحتاج إلي معامل واحد وهو مقبض الملف ...
كود:
<?
$fp = fopen ("file.txt");
$p = ftell($fp);
echo $p;
?>
Rewind
تقوم بإرجاع المؤشر إلي بداية الملف ...
كود:
<?
$fp = fopen ("file.txt");
rewind($fp)
?>