آموزش بازکردن٬ خواندن و بستن فایل در PHP
در این درس قصد داریم تا نحوه بازکردن (open) ٬ خواندن (read) و بستن (close) فایل ها در PHP را آموزش دهیم.
آموزش کار با تابع fopen در PHP:
راه بهتر برای باز کردن فایل ها در PHP استفاده از تابع fopen() به جای تابع read file() است زیرا تابع fopen امکانات بیشتری را در اختیارتان قرار می دهد.
در مثال های آموزشی این درس از فایل متنی “web.text” که محتویات آن به صورت زیر است استفاده خواهیم کرد:
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() نام فایلی که می خواهیم آن را باز کرده و پارامتر دوم تعیین کننده متد باز کردن فایل است. در کد مثال عملی زیر٬ اقدام به باز کردن فایل متنی “web.text” کرده ایم که در آن از متد “r” به معنای بازکردن به صورت فقط خواندنی یا read-only استفاده شده است.تابع fopen() اگر نتواند فایل مورد نظر را باز کند٬ یک پیام هشدار نیز صادر خواهد کرد:
انواع متدهای ممکن برای باز کردن فایل ها با استفاده از تابع fopen() عبارتند از :
- r: دراین حالت فایل به صورت فقط خواندنی (readonly) و از ابتدای آن خوانده می شود.
- w: در این حالت فایل در حال نوشتن (write( باز می شود.اگر فایل از قبل وجود داشته باشد محتویات آن پاک شده و محتویات جدید در آن نوشته می شود.اگر هم فایل وجود نداشته باشد یک فایل جدید ایجاد می شود.در این متد هم اشاره گر از ابتدای فایل شروع می کند.
- a: در این حالت نیز فایل برای نوشتن (write( باز شده با این تفاوت که محتویات قبلی فایل حفظ شده و محتویات جدید به انتهای آن اضافه می شود.درواقع اشاره گر از انتهای فایل شروع کرده و در صورت موجودنبودن فایل ٬ یک فایل جدید اضافه خواهد شد.
- x: این حالت یک فایل جدید را جهت نوشتن (write( باز می کند.درصورتی که فایل مورد نظر از قبل وجود داشته error داده و مقدار FALSE را بر می گرداند.
- r+: در این حالت برنامه فایل را جهت خواندن و نوشتن (read/write( باز می کند. اشاره گر در ابتدای فایل قرار خواهد گرفت.
- w+: در این حالت برنامه فایل را برای خواندن و نوشتن (read/wife( باز کرده و در صورتی که فایل موجود باشد محتویات آن را پاک نموده و در صورت عدم وجود فایل ٬ یک نمونه جدید ایجاد می کند. در این حالت نیز اشاره گر از ابتدای فایل شروع می کند.
- a: در این حالت نیز فایل برای خواندن و نوشتن (read/write( باز شده و محتویات قبلی آن حفظ شده و محتویات جدید به انتهای فایل اضافه می شود. اشاره گر از انتهای فایل شروع خواهد کرد.
- x : در این حالت یک فایل جدید برای خواندن و نوشتن (read/write( باز شده و در صورت وجود داشتن فایل یک error رخ داده و مقدار FALSE بر می گرداند.
آموزش کار با فایل fread() در PHP:
تابعfread() محتویات یک فایل باز را می خواند.
پارامتر اول در تابع dread() نام فایل جهت خواندن و پارامتر دوم تعداد بایت هایی که بایستی از فایل خوانده شود را مشخص می کند.
کد مثال عملی زیر کلیه محتویات فایل “webdictionary.text” را تا انتها می خواند.توجه داشته باشید اگر مقداری برای پارامتر دوم تعیین نشود٬ برنامه به صورت پیش فرض کل فایل را می خواند.
fread($myfile,filesize("webdictionary.txt"));
آموزش کار با تابع fclose() در PHP:
تابع fclose() جهت بستن یک فایل open به کار می رود.
بهتر است همواره پس از این که کارتان با یک فایل باز شده در برنامه تمام شد آن را حتما ببندید زیرا یک فایل باز در حافظه سرور باقی مانده و با مصرف منابع آن باعث کند شدن سیستم می شود.
نکته:
: پس از هر بار فراخوانی تابع fgets() اشاره گر برنامه به ابتدای خط بعدی در فایل می رود.
نکته:
پس از خواندن یک کاراکتر توسط fgetc() در فایل٬ اشاره گر به ابتدای کاراکتر بعدی خواهد رفت.