fseek() (fseek)
تابع fseek برای «جابه جایی نشانگر فایل با fseek» است. «نشانگر فایل (File Pointer)» جایی است که بعدی می خوانیم یا می نویسیم. با fseek می توانیم به جلو یا عقب بپریم. این کار مثل کشیدن نوار پخش جلو و عقب است.
تعریف کوتاه و کاربرد
fseek نشانگر فایل باز را به موقعیت جدید می برد. حرکت با بایت اندازه گیری می شود. همچنین می توانیم از مبداهای مختلف استفاده کنیم: ابتدای فایل، موقعیت فعلی، یا انتهای فایل.
مقادیر whence مهم
SEEK_SET: مبدا ابتدای فایل است.SEEK_CUR: مبدا موقعیت فعلی است.SEEK_END: مبدا انتهای فایل است.
نکته: موقعیت فعلی را با ftell پیدا کن. مقدار بازگشتی fseek در موفقیت 0 است.
مثال 1: خواندن خط اول و بازگشت به ابتدای فایل
<?php
$file = fopen("test.txt", "r");
// خواندن خط اول
echo fgets($file);
// بازگشت به ابتدای فایل
fseek($file, 0);
// دوباره خواندن از ابتدا
echo fgets($file);
fclose($file);
?>
مثال 2: رفتن 5 بایت قبل از انتها و خواندن
<?php
$file = fopen("test.txt", "r");
// رفتن به 5 بایت قبل از انتها
fseek($file, -5, SEEK_END);
// خواندن 5 بایت آخر
echo fread($file, 5);
fclose($file);
?>
گام های عملی
- فایل را با fopen باز کن.
- با fseek به موقعیت هدف برو.
- با fread یا fgets داده بگیر.
- نتیجه را پردازش کن و فایل را ببند.
هشدار: برای رفتن قبل از انتها، آفست باید منفی باشد. مراقب اندازه فایل باش تا خطا نگیری.
جمع بندی سریع
- fseek نشانگر فایل را جابه جا می کند.
- واحد حرکت، بایت است.
- SEEK_SET، SEEK_CUR، SEEK_END مبداها هستند.
- موفقیت با مقدار 0 مشخص می شود.