آموزش پیشرفته PHP – کار با فایل ها
سلام
در جلسه ی قبلی پرداختیم به مدیریت پرونده ها در PHP، در این قسمت میخواهیم بپردازیم به کار با فایل ها، اینکه چطوری میتوانیم فایل ها را در برنامه باز کنیم، محتوای آن را به کاربر نمایش داده و در نهایت فایل را ببنیدیم؛ در ادامه همراه بپرسم باشید.
تابع ()fopen – باز کردن فایل
برای باز کردن فایل ها در PHP بهتر است از تابع ()fopen بجای تابع ()readfile استفاده کنید.
در طول این جلسه از فایلی به اسم beporsam.txt استفاده میکنیم، که حاوی اطلاعات زیر می باشد:
۱ ۲ ۳ ۴ |
بپرسم، مکانی برای آموزش و رفع مشکلات در وب سایت بپرسم می توانید به بیش از ۱۰۰۰ مقاله ی آموزشی دسترسی داشته باشید و همچنین میتوانید سوالات خود را در بخش پرسش و پاسخ بپرسید www.beporsam.ir beporsam@gmail.con |
پارامتر اول تابع ()fopen حاوی نام پرونده ای است که باید باز شود و پارامتر دوم مشخص میکند که پرونده در چه حالتی باز شود؛ در قطعه کد زیر حالت r انتخاب شده است(حالت ها در جدول پایین آورده شده است):
۱ ۲ ۳ ۴ ۵ |
<?php $myfile = fopen("beporsam.txt", "r"); echo fread($myfile,filesize("beporsam.txt")); fclose($myfile); ?> |
در رابطه با دو تابع ()fopen و ()fclose در ادامه صحبت خواهیم کرد.
همانطور که گفتیم، پارامتر دوم تابع ()fopen مشخص میکند که فایل در چه حالتی باز شود، این حالات در جدول زیر آمده است:
r |
فقط خواندنی. از ابتدای فایل آغاز می شود |
w |
فقط نوشتنی. فایل را باز و محتویات آن را پاک می کند، یا اگر فایلی وجود نداشت آن را ایجاد می کند |
a |
افزودن(الحاق). فایل را باز و در انتهای آن می نویسد، یا اگر فایلی وجود نداشت آن را ایجاد می کند |
x |
فقط نوشتنی. یک فایل جدید ایجاد می کند.اگر فایل درحال حاضر وجود داشته باشد false و یک خطا برمیگرداند |
r+ |
خواندنی/نوشتنی. از ابتدای فایل آغاز می شود |
w+ |
خواندنی/نوشتنی. فایل را باز و محتویات آن را پاک می کند، یا اگر فایلی وجود نداشت آن را ایجاد می کند |
a+ |
خواندنی/افزودنی. محتویات فایل را با نوشتن در انتهای آن حفظ می کند |
x+ |
خواندنی/نوشتنی. یک فایل جدید ایجاد می کند. اگر فایل درحال حاضر وجود داشته باشد false و یک خطا برمیگرداند |
نکته: اگر تابع ()fopen قادر به باز کردن فایل مشخص شده نباشد٫ مقدار “۰” یا (false) را برمی گرداند.
در صورتی که تابع ()fopen قادر به باز کردن فایل نباشد، می توانیم مطابق قطعه کد زیر، پیغامی را تعیین کنید که به کاربر نمایش داده شود:
۱ ۲ ۳ ۴ ۵ |
<?php $myfile = fopen("beporsam.txt", "r") or die("فایل باز نمیشود"); echo fread($myfile,filesize("beporsam.txt")); fclose($myfile); ?> |
تابع ()fread – خواندن فایل
تابع ()fread فایل باز شده را میخواند، پارامتر اول این تابع حاوی نام فایل هست و پارامتر دوم حداکثر تعداد بایت را برای خواندن مشخص میکند.
قطعه کد زیر فایل beporsam.txt را تا انتها میخواند:
۱ |
fread($myfile,filesize("beporsam.txt")); |
تابع ()fclose – بستن فایل
از تابع ()fclose برای بستن فایل باز ایجاد میشود.
این یک برنامه نویسی خوب است که تمام پرونده ها را پس از اتمام کار با آنها ببندید، قطعا نمیخواهید یک فایل روی سرور شما در حال جذب منبع باشد!
تابع ()fclose برای بستن فایل، به نام آن نیاز دارد(یا متغیری که نام فایل را در اختیار داشته باشد) که میخواهیم آن را ببندیم:
۱ ۲ ۳ ۴ |
<?php $myfile = fopen("beporsam.txt", "r"); fclose($myfile); ?> |
در قطعه کد بالا در خط ۲، فایل را در متغیر myfile$ باز کردیم، سپس توسط تابع ()fclose نام متغیر را برای بستن میدهیم.
تابع ()fgets – خواندن یک خط از فایل
از تابع ()fgets برای خواندن یک خط از یک فایل استفاده میشود، در قطعه کد زیر خط اول از فایل beporsam.txt را میخواند:
۱ ۲ ۳ ۴ ۵ |
<?php $myfile = fopen("beporsam.ir", "r") or die("فایل خوانده نشد!"); echo fgets($myfile); fclose($myfile); ?> |
نکته: بعد از هر بار فراخوانی این تابع، اشاره گر فایل، به خط بعدی جابه جا می شود.
تابع ()feof – بررسی پایان فایل
تابع ()feof بررسی میکند آیا کد به انتهای فایل رسیده است یا خیر، این تابع به ویژه برای پیمایش در فایل هایی که از طول آن ها آگاهی دقیق نداریم بسیار کاربردی می باشد.
در قطعه کد زیر فایل beporsam.txt به صورت خط به خط تا زمان به پایان رسیدن پرونده خوانده شده است:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ |
<?php $myfile = fopen("beporsam.txt", "r") or die("فایل خوانده نمیشود!"); // Output one line until end-of-file while(!feof($myfile)) { echo fgets($myfile) . "<br>"; } fclose($myfile); ?> |
تابع ()fgetc – خواندن کاراکتر به کاراکتر فایل
از تابع ()fgetc برای خواندن یک کاراکتر تنها از یک فایل، استفاده میشود.
قطعه کد زیر یک فایل را تا پایان فایل، کاراکتر به کاراکتر می خواند:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ |
<?php $myfile = fopen("beporsam.txt", "r") or die("فایل خوانده نمیشود!"); // Output one character until end-of-file while(!feof($myfile)) { echo fgetc($myfile); } fclose($myfile); ?> |
نکته: بعد از فراخوانی این تابع، اشاره گر فایل به کاراکتر بعدی جابه جا می شود.
این قسمت از آموزش نیز به پایان رسید، اگر مشکلی در رابطه با آموزش بالا داشتید، در بخش پرسش و پاسخ سایت بپرسید.
موفق باشید.
ارسال نظر
شما باید وارد شوید یا عضو شوید تا بتوانید نظر ارسال کنید