مدیریت فایل بخش مهمی از برنامه وب است. شما اغلب نیاز به بازکردن و پردازش یک فایل برای کارهای مختلف دارید.
Table of contents [Show]
php چندین فانکشن برای ایجاد، خواندن، آپلود و ویرایش فایلها دارد.
پیشنهاد ویژه: آموزش رایگان PHP
readfile() یک فایل را میخواند. و تعداد کاراکترها را نیز برمیگرداند.
<?php
echo readfile(“webdictionary.txt”);
?>
مثلا یک فایل متنی به نام webdictionary.txt داریم برای بازکردن و خواندش از تابع readfile() استفاده میشود. تو هر صفحهای میشه با این تابع محتوای آن فایل را بازکرد و خواند.
یک روش بهتر برای بازکردن فایلها با تابع fopen() است این تابع گزینههای بیشتری را نسبت به تابع readfile() در اختیار شما قرار میدهد. پارامتر اول fopen() حاوی نام فایلی است که باید باز شود و پارامتر دوم مشخص میکند که فایل در چه حالتی باید باز شود.
حالتهای مختلفی برای بازکردن فایل وجود دارد در ادامه انواع حالتها را میآوریم.
r : یک فایل فقط برای خواندن باز کنید. نشانگر فایل از ابتدای فایل شروع می شود
w : یک فایل فقط برای نوشتن باز کنید. محتویات فایل را پاک می کند یا در صورت عدم وجود فایل جدیدی ایجاد می کند. نشانگر فایل از ابتدای فایل شروع می شود
a : باز کردن یک فایل فقط برای نوشتن. داده های موجود در فایل حفظ می شود. نشانگر فایل از انتهای فایل شروع می شود. در صورت عدم وجود فایل، فایل جدیدی ایجاد می کند
x : یک فایل جدید فقط برای نوشتن ایجاد می کند. FALSE را برمیگرداند و اگر فایل از قبل وجود داشته باشد، یک خطا را نشان میدهد
r+ : یک فایل برای خواندن/نوشتن باز کنید. نشانگر فایل از ابتدای فایل شروع می شود
w+ : یک فایل برای خواندن/نوشتن باز کنید. محتویات فایل را پاک می کند یا در صورت عدم وجود فایل جدیدی ایجاد می کند. نشانگر فایل از ابتدای فایل شروع می شود
a+ : یک فایل را برای خواندن/نوشتن باز کنید. داده های موجود در فایل حفظ می شود. نشانگر فایل از انتهای فایل شروع می شود. در صورت عدم وجود فایل، فایل جدیدی ایجاد می کند
x+ : یک فایل جدید برای خواندن/نوشتن ایجاد می کند. FALSE را برمیگرداند و اگر فایل از قبل وجود داشته باشد، یک خطا را نشان میدهد
تابع fread() از یک فایل باز خوانده میشود. پارامتر اول تابع حاوی نام فایلی است که باید از آن خوانده شود و پارامتر دوم حداکثر تعداد بایتهای خواندنی را مشخص میکند.
fread($myfile,filesize(“webdictionary.txt”));
با این تابع برنامه را میبندیم تا منابع اضافی سرور را اشغال نکند.
Fclose($myfile)
تابع fgets() برای خواندن یک خط از یک فایل استفاده میشود.
<?php
$myfile = fopen(“webdictionary.txt”, “r”) or die(“Unable to open file!”);
echo fgets($myfile);
fclose($myfile);
?<
تابع feof() بررسی میکند که آیا به انتهای فایل (eof) رسیده است یا خیر. تابع feof() برای حلقه زدن از طریق دادههایی با طول ناشناخته مفید است.
<?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);
?>
تابع fopen() نیز برای ایجاد فایل استفاده میشود. یعنی یک فایل با استفاده از همان تابعی که برای بازکردن فایلها استفاده میشود ایجاد میشود. اگر از fopen() روی فایلی استفاده کنید که وجود ندارد با توجه به اینکه فایل برای نوشتن (w) یا (a) باز شده است آن را ایجاد میکند.
تابع fwrite() برای نوشتن روی یک فایل استفاده میشود. پارامتر اول fwrite() شامل نام فایلی است که باید روی آن بنویسید. و پارامتر دوم حالتی است که باید نوشته شود.
<?php
$myfile = fopen(“newfile.txt”, “w”) or die(“Unable to open file!”);
$txt = “John Doe\n”;
fwrite($myfile, $txt);
$txt = “Jane Doe\n”;
fwrite($myfile, $txt);
fclose($myfile);
?>
اگر mode، w باشد متن های قبلی حذف میشود و رشته جدید اضافه میشود. ولی اگر mode، a باشد متن قبلی را حفظ میکند و رشتههای جدید را اضافه میکند.