باز کردن/خواندن/بستن فایل

از ویکی‌کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Php-menu.png
موارد آموزشی
فرم‌ها در PHP
PHP پیشرفته
۱تاریخ و زمان
۲دستور Include
۳مدیریت فایل
۴باز کردن/خواندن فایل
۵ساختن/نوشتن فایل
۶آپلود فایل
۷کوکی‌ها
۸Sessions
۹فیلترها
۱۰فیلترهای پیشرفته
۱۱JSON در PHP
شیء گرایی در PHP
پایگاه داده MySQL
XML در PHP
AJAX در PHP
مثال‌های PHP
مرجع 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() در باز کردن فایل مشخص شده ناتوان باشد، یک پیغام ایجاد می‌کند:

مثال

1 <?php
2 $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
3 echo fread($myfile,filesize("webdictionary.txt"));
4 fclose($myfile);
5 ?>


مشاهدهٔ نتیجه


نکته: توابع fread() و fclose() در زیر توضیح داده خواهند شد.

فایل ممکن است در یکی از حالت‌های زیر باز شود:

حالت‌ها توضیحات
r یک فایل را به صورت فقط خواندنی باز می‌کند. اشاره‌گر فایل از ابتدای فایل آغاز می‌کند
w یک فایل را به صورت فقط نوشتنی باز می‌کند. محتوای فایل را پاک می‌کند یا در صورتی که فایل وجود نداشته باشد فایل را ایجاد می‌کند. اشاره گر فایل از ابتدای فایل آغاز می‌کند
a یک فایل را به صورت فقط نوشتنی باز می‌کند. داده‌های موجود در فایل حفظ می‌شود. اشاره گر فایل از انتهای فایل آغاز می‌کند. در صورت عدم وجود فایل، یک فایل جدید ایجاد می‌کند
x یک فایل را به صورت فقط نوشتنی ایجاد می‌کند. مقدار FALSE و یک خطا را در صورتی که فایل از قبل وجود داشته باشد را برمی‌گرداند
r+ یک فایل را برای خواندن / نوشتن باز می‌کند.اشاره گر فایل از ابتدای فایل آغاز می‌کند
w+ یک فایل را برای خواندن / نوشتن باز می‌کند. محتوای فایل را پاک می‌کند یا یک فایل جدید را در صورت عدم وجود ایجاد می‌کند. اشاره گر فایل از ابتدای فایل آغاز می‌کند
a+ یک فایل را برای خواندن / نوشتن باز می‌کند. داده‌های موجود در فایل حفظ می‌شوند. اشاره گر فایل از پایان آغاز می‌کند. در صورتی که فایل از قبل وجود نداشت، یک فایل جدید ایجاد می‌کند
x+ یک فایل را برای خواندن / نوشتن باز می‌کند. مقدار FALSE و یک خطا را در صورتی که فایل از قبل وجود داشته باشد را برمی‌گرداند

خواندن فایل در PHP - تابع fread()

تابع fread() یک فایل باز شده را می‌خواند.

پارامتر اول تابع fread() شامل نام فایلی است که می‌بایست آن را بخواند و پارامتر دوم حداکثر تعداد بایتی را که می‌بایست بخواند مشخص می‌کند.

کد PHP زیر فایل "webdictionary.txt" را تا انتها می‌خواند:

fread($myfile,filesize("webdictionary.txt"));

بستن فایل در PHP - تابع fclose()

تابع fclose() برای بستن یک فایل باز استفاده می‌شود.

تمرین برنامه‌نویسی خوبی است که تمامی فایلها را بعداز اینکه کارتان با آنها تمام شد، آنها را ببندید. شما نمی‌خواهید که یک فایل باز که روی سرور شما اجرا می‌شود منابع سرورتان را درگیر کند!

تابع fclose() نام فایل (و یا متغیری که نام فایل را نگهداری می‌کند) را که ما می‌خواهیم آن را ببندیم را نیاز دارد:

<?php
$myfile = fopen("webdictionary.txt", "r");
// some code to be executed....
fclose($myfile);
?>

خواندن یک خط در PHP - تابع fgets()

تابع fgets() برای خواندن یک خط از یک فایل استفاده می‌شود.

مثال زیر خط اول فایل "webdictionary.txt" را در خروجی چاپ می‌کند:

مثال

1 <?php
2 $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
3 echo fgets($myfile);
4 fclose($myfile);
5 ?>


مشاهدهٔ نتیجه


نکته: بعد از یک بار فراخوانی تابع fgets()، اشاره گر فایل به خط بعدی منتقل می‌شود.

بررسی انتهای فایل (End-Of-File) در PHP - تابع feof()

تابع feof() بررسی می‌کند که آیا به " انتهای فایل "end-of-file" (EOF) رسیده‌ایم.

تابع feof() برای پیمایش در داده‌ای که طول آن ناشناخته است کاربرد دارد.

مثال زیر فایل "webdictionary.txt" را خط به خط، تا زمانی که به انتهای فایل (end-of-file) برسد می‌خواند:

مثال

1 <?php
2 $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
3 // Output one line until end-of-file
4 while(!feof($myfile)) {
5   echo fgets($myfile) . "<br>";
6 }
7 fclose($myfile);
8 ?>


مشاهدهٔ نتیجه


خواندن یک تک کاراکتر در PHP - تابع fgetc()

تابع fgetc() برای خواندن یک تک کاراکتر از یک فایل استفاده می‌شود.

مثال زیر فایل "webdictionary.txt" را کاراکتر به کاراکتر، تا زمانی که به انتهای فایل (end-of-file) برسد می‌خواند:

مثال

1 <?php
2 $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
3 // Output one character until end-of-file
4 while(!feof($myfile)) {
5   echo fgetc($myfile);
6 }
7 fclose($myfile);
8 ?>


مشاهدهٔ نتیجه


نکته: بعد از یک بار فراخوانی تابع fgetc()، اشاره گر فایل به کاراکتر بعدی منتقل می‌شود.

مرجع کامل فایل سیستم در PHP

برای مشاهده یک مرجع کامل از توابع سیستم فایل، مرجع کامل فایل سیستم ما در PHP را ببینید.

تمرینات PHP

Time2wait.svg ساخت نمونه مثال این بخش در دست اقدام است.



منابع آموزشی