باز/خواندن فایل (File Open/Read)
در این بخش «باز/خواندن فایل PHP» را یاد می گیری. «فایل (File)» ظرف داده است. باید فایل را باز کنی، بخوانی، و در پایان ببندی. قدم به قدم پیش می رویم.
باز کردن فایل با fopen()
تابع fopen() فایل را باز می کند. «حالت (Mode)» تعیین می کند چگونه باز شود. اگر فایل باز نشد، پیام خطا بده.
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fread($myfile, filesize("webdictionary.txt"));
fclose($myfile);
?>
حالت های پرکاربرد فایل
r: فقط خواندن؛ از ابتدا.w: فقط نوشتن؛ پاک یا بساز؛ از ابتدا.a: فقط نوشتن؛ به انتها اضافه کن.r+: خواندن/نویسش؛ از ابتدا.w+: خواندن/نویسش؛ پاک یا بساز؛ از ابتدا.a+: خواندن/نویسش؛ از انتها.
نکته: حالت x و x+ فقط اگر فایل وجود نداشته باشد می سازند.
خواندن محتوا با fread()
fread() از فایل بازشده می خواند. پارامتر دوم، حداکثر بایت است.
<?php
echo fread($myfile, filesize("webdictionary.txt"));
?>
بستن فایل با fclose()
همیشه بعد از کار، فایل را ببند. این کار منابع سرور را آزاد می کند.
<?php
$myfile = fopen("webdictionary.txt", "r");
// ... پردازش فایل ...
fclose($myfile);
?>
خواندن یک خط با fgets()
fgets() فقط یک خط می خواند. اشاره گر فایل سپس به خط بعد می رود.
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fgets($myfile);
fclose($myfile);
?>
حلقه تا پایان فایل با feof()
feof() بررسی می کند به انتهای فایل رسیده ای یا نه. برای طول نامشخص عالی است.
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
while (!feof($myfile)) {
echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>
خواندن کاراکتر با fgetc()
fgetc() یک کاراکتر می خواند. سپس اشاره گر جلو می رود.
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
while (!feof($myfile)) {
echo fgetc($myfile);
}
fclose($myfile);
?>
هشدار: قبل از نوشتن با w یا w+، از فایل پشتیبان بگیر. این حالت ها محتوا را پاک می کنند.
گام های سریع تمرین
- با حالت
rفایل را باز کن. - با
fgets()یک خط بخوان. - با
feof()همه خطوط را چاپ کن. - در پایان،
fclose()را فراموش نکن.
جمع بندی سریع
- fopen() باز می کند؛ حالت ها رفتار را تعیین می کنند.
- fread()/fgets()/fgetc() روش های خواندن هستند.
- feof() پایان فایل را تشخیص می دهد.
- fclose() همیشه اجرا شود.
لینک های داخلی
پیش نیاز را در مدیریت فایل PHP ببین. ادامه ساخت فایل در ایجاد/نوشتن فایل PHP دنبال می شود. برای قطعات مشترک، اینکلود PHP را بخوان.