
توی دوره رایگان PHP، هر چیزی که برای حرفهای شدن نیاز داری رو یاد میگیری! از مفاهیم پایه تا پیشرفته، همراه با یه پروژه واقعی برای ساخت یه سایت مثل آپارات.
مشاهده بیشتر
توی این دوره با هم یه وبسایت خبری واقعی رو از صفر میسازیم! از طراحی دیتابیس و احراز هویت تا ساخت API و یه پنل مدیریت حرفهای، همه رو یاد میگیریم و آماده پروژههای واقعی میشی!
مشاهده بیشترمشخصات مقاله
آموزش بازکردن٬ خواندن و بستن فایل در PHP
آموزش بازکردن٬ خواندن و بستن فایل در PHP
در این درس قصد داریم تا نحوه بازکردن (open) ٬ خواندن (read) و بستن (close) فایل ها در PHP را آموزش دهیم.
آموزش کار با تابع fopen در PHP:
راه بهتر برای باز کردن فایل ها در PHP استفاده از تابع fopen() به جای تابع read file() است زیرا تابع fopen امکانات بیشتری را در اختیارتان قرار می دهد.
در مثال های آموزشی این درس از فایل متنی "web.text" که محتویات آن به صورت زیر است استفاده خواهیم کرد:
1 2 3 4 5 6 7 8 | 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 <button></button> |
پارامتر اول در تابع fopen() نام فایلی که می خواهیم آن را باز کرده و پارامتر دوم تعیین کننده متد باز کردن فایل است. در کد مثال عملی زیر٬ اقدام به باز کردن فایل متنی "web.text" کرده ایم که در آن از متد "r" به معنای بازکردن به صورت فقط خواندنی یا read-only استفاده شده است.تابع fopen() اگر نتواند فایل مورد نظر را باز کند٬ یک پیام هشدار نیز صادر خواهد کرد:
1 2 3 4 5 6 | <!--?php $myfile = fopen ( "webdictionary.txt" , "r" ) or die ( "Unable to open file!" ); echo fread ( $myfile , filesize ( "webdictionary.txt" )); fclose( $myfile ); ?--> <button></button> |
انواع متدهای ممکن برای باز کردن فایل ها با استفاده از تابع 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" را تا انتها می خواند.توجه داشته باشید اگر مقداری برای پارامتر دوم تعیین نشود٬ برنامه به صورت پیش فرض کل فایل را می خواند.
1 2 | fread ( $myfile , filesize ( "webdictionary.txt" )); <button></button> |
آموزش کار با تابع fclose() در PHP:
تابع fclose() جهت بستن یک فایل open به کار می رود.
بهتر است همواره پس از این که کارتان با یک فایل باز شده در برنامه تمام شد آن را حتما ببندید زیرا یک فایل باز در حافظه سرور باقی مانده و با مصرف منابع آن باعث کند شدن سیستم می شود.
تابع fclose() دارای یک پارامتر متنی بوده که نام فایل مورد نظر جهت بستن را تعیین می کند. به وسیله کد مثال عملی زیر فایل باز شده "web dictionary.txt" را می بندیم:
1 2 3 4 5 6 | <!--?php $myfile = fopen ( "webdictionary.txt" , "r" ); // some code to be executed.... fclose( $myfile ); ?--> <button></button> |
آموزش کار با تابع fgets() در PHP - خواندن یک خط از فایل:
از تابع fgets() برای خواندن یک خط از فایل مورد نظر استفاده می شود.
در کد مثال عملی زیر با استفاده از تابع fgets() اولین خط از فایل "webdictionary.txt را خوانده و در خروجی نمایش داده ایم:
1 2 3 4 5 6 | <!--?php $myfile = fopen ( "webdictionary.txt" , "r" ) or die ( "Unable to open file!" ); echo fgets ( $myfile ); fclose( $myfile ); ?--> <button></button> |
: پس از هر بار فراخوانی تابع fgets() اشاره گر برنامه به ابتدای خط بعدی در فایل می رود.
آموزش چک کردن انتهای فایل در PHP با تابع feof():
تابع feof() چک می کند آیا برنامه به انتهای فایل end-of-life یا EOF رسیده یا خیر. تابع feof() معمولا برای جستجو در دیتایی که طول آن را نمی دانیم مناسب است.
در کد مثال عملی زیر٬ محتویات فایل را به صورت خط به خط خوانده و نمایش داده ایم تا به انتهای فایل برسیم:
1 2 3 4 5 6 7 8 9 | <!--?php $myfile = fopen ( "webdictionary.txt" , "r" ) or die ( "Unable to open file!" ); // Output one line until end-of-file while (! feof ( $myfile )) { echo fgets ( $myfile ) . "<br-->" ; } fclose( $myfile ); ?> <button></button> |
آموزش خواندن یک کاراکتر در فایل PHP با fgetc():
از تابع fgetc() در PHP برای خواندن یک کاراکتر تنها در فایل استفاده می شود. در کد مثال عملی زیر٬ محتویات فایل " web dictionary.text" را به صورت کاراکتر به کاراکتر خوانده و در خروجی نمایش داده ایم تا به انتهای فایل برسیم:
1 2 3 4 5 6 7 8 9 | <!--?php $myfile = fopen ( "webdictionary.txt" , "r" ) or die ( "Unable to open file!" ); // Output one character until end-of-file while (! feof ( $myfile )) { echo fgetc ( $myfile ); } fclose( $myfile ); ?--> <button></button> |
پس از خواندن یک کاراکتر توسط fgetc() در فایل٬ اشاره گر به ابتدای کاراکتر بعدی خواهد رفت.