PHP – مدیریت فایل: باز کردن، خواندن و بستن (File Open/Read/Close)
مدیریت فایل در PHP: باز کردن، خواندن و بستن
در این بخش، روشهای باز کردن، خواندن و بستن فایلها در PHP را یاد خواهید گرفت.
باز کردن فایل - fopen()
یک روش بهتر برای باز کردن فایلها استفاده از تابع fopen()
است. این تابع امکانات بیشتری نسبت به تابع readfile()
ارائه میدهد.
ما از فایل متنی “webdictionary.txt” در آموزشهای خود استفاده خواهیم کرد که به صورت زیر است:
AJAX = Asynchronous JavaScript and XML
CSS = Cascading Style Sheets
HTML = Hyper Text Markup Language
PHP = PHP Hypertext Preprocessor
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = EXtensible Markup Language
پارامتر اول تابع fopen()
نام فایلی است که باید باز شود و پارامتر دوم مشخص میکند که فایل در چه وضعیتی باید باز شود. در مثال زیر، اگر تابع fopen()
نتواند فایل مشخص شده را باز کند، پیامی تولید میشود:
مثال
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fread($myfile, filesize("webdictionary.txt"));
fclose($myfile);
?>
تذکر: توابع fread()
و fclose()
در ادامه توضیح داده خواهند شد.
حالتهای مختلف باز کردن فایل
فایل ممکن است در یکی از حالتهای زیر باز شود:
حالت | توضیحات |
---|---|
r |
باز کردن فایل برای خواندن فقط. اشارهگر فایل از ابتدای فایل شروع به کار میکند. |
w |
باز کردن فایل برای نوشتن فقط. محتوای فایل را پاک میکند یا فایل جدیدی ایجاد میکند اگر وجود نداشته باشد. اشارهگر فایل از ابتدای فایل شروع به کار میکند. |
a |
باز کردن فایل برای نوشتن فقط. دادههای موجود در فایل حفظ میشود. اشارهگر فایل از انتهای فایل شروع به کار میکند. فایل جدیدی ایجاد میشود اگر فایل وجود نداشته باشد. |
x |
ایجاد یک فایل جدید برای نوشتن فقط. اگر فایل قبلاً وجود داشته باشد، مقدار FALSE و خطا برمیگرداند. |
r+ |
باز کردن فایل برای خواندن/نوشتن. اشارهگر فایل از ابتدای فایل شروع به کار میکند. |
w+ |
باز کردن فایل برای خواندن/نوشتن. محتوای فایل را پاک میکند یا فایل جدیدی ایجاد میکند اگر وجود نداشته باشد. اشارهگر فایل از ابتدای فایل شروع به کار میکند. |
a+ |
باز کردن فایل برای خواندن/نوشتن. دادههای موجود در فایل حفظ میشود. اشارهگر فایل از انتهای فایل شروع به کار میکند. فایل جدیدی ایجاد میشود اگر فایل وجود نداشته باشد. |
x+ |
ایجاد یک فایل جدید برای خواندن/نوشتن. اگر فایل قبلاً وجود داشته باشد، مقدار FALSE و خطا برمیگرداند. |
خواندن فایل - fread()
تابع fread()
برای خواندن از یک فایل باز شده استفاده میشود.
پارامتر اول تابع fread()
نام فایل است که باید از آن خوانده شود و پارامتر دوم حداکثر تعداد بایتهایی را که باید خوانده شود مشخص میکند.
کد PHP زیر فایل “webdictionary.txt” را تا انتها میخواند:
مثال
<?php
$myfile = fopen("webdictionary.txt", "r");
echo fread($myfile, filesize("webdictionary.txt"));
fclose($myfile);
?>
بستن فایل - fclose()
تابع fclose()
برای بستن یک فایل باز شده استفاده میشود.
این یک تمرین خوب برنامهنویسی است که پس از اتمام کار با فایلها، آنها را ببندید. نمیخواهید فایلی باز بماند و منابع سرور را اشغال کند!
تابع 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);
?>
توجه: پس از فراخوانی تابع fgets()
, اشارهگر فایل به خط بعدی منتقل میشود.
بررسی انتهای فایل - feof()
تابع feof()
بررسی میکند که آیا به “پایان فایل” (EOF) رسیدهایم یا خیر.
تابع 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);
?>
توجه: پس از فراخوانی تابع fgetc()
, اشارهگر فایل به کاراکتر بعدی منتقل میشود.
مدیریت صحیح فایلها در PHP میتواند به طور مؤثر به مدیریت دادهها و عملکرد برنامههای وب شما کمک کند.
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام