مدیریت فایل ها در PHP5
![مدیریت فایل ها در PHP5](images/post/1File_handling_in_PHP5.png)
مدیریت فایل ها در PHP5
مدیریت و رسیدگی به فایل بخش مهمی از هر برنامه وب میباشد. شما اغلب نیاز به باز کردن و پردازش یک فایل برای کارهای متفاوت دارید.
دستکاری فایل های PHP
PHP دارای چندین تابع برای ایجاد، خواندن، آپلود و ویرایش فایل ها می باشد.
هنگام دستکاری فایل ها باید بسیار مراقب باشید. اگر شما کار اشتباهی انجام دهید ممکن است، آسیب زیادی به برنامه تان بزنید. اشتباهات رایج عبارتند از: ویرایش اشتباه فایل، پر کردن هارد دیسک با داده های زباله، و حذف محتویات یک فایل به طور تصادفی.
♦ تابع readfile() در PHP
تابع readfile در PHP یک فایل را می خواند و ان را در یک بافر خروجی می نویسد.
فض کنید یک فایل متنی به نام "webdictionary.txt" دارید که روی سرور ذخیره شده است و شامل اطلاعات زیر می باشد:
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
کد PHP برای خواندن فایل و ارسال آن به بافر خروجی به شرح زیر است: ( در تمامی مثال ها به جای() از علامتهای <> استفاده کنید)
echo readfile("webdictionary.txt");
?)
تابع readfile، اگر بخواهید فایلی را باز کنید و محتویات آن را بخوانید، مفید واقع خواهد شد.
♦ باز کردن فایل در PHP - تابع fopen
یک روش بهتر برای باز کردن فایل ها استفاده از تابع fopen می باشد. این تابع نسبت به تابع readfile گزینه های بیشتری در اختیار شما قرار می دهد.
پارامتر اول از تابع fopen، شامل نام فایلی است که می خواهید باز کنید و پارامتر دوم، حالت باز شدن فایل مورد نظرتان را مشخص میکند.
در مثال زیر، اگر تابع fopen نتواند فایل را باز کند، پیغامی را نشان می دهد.
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fread($myfile,filesize("webdictionary.txt"));
fclose($myfile);
?)
فایل ممکن است در یکی از حالت های زیر باز شود :
► r : باز کردن یک فایل فقط خواندنی. اشاره گر فایل از ابتدای فایل شروع می شود.
► w : یک فایل تنها نوشتنی را باز میکند. محتویات فایل را پاکسازی میکند و یا در صورت عدم وجود فایل، یک فایل جدید ایجاد میکند. اشاره گر فایل در ابتدای فایل شروع می شود.
► a : فایلی با قابلیت تنها نوشتنی باز می کند. محتویات موجود در فایل حفظ میشوند. اشاره گر فایل در انتهای فایل شروع می شود و اگر فایل وجود ندارد، فایل جدیدی ایجاد میکند.
► x : یک فایل جدید تنها برای نوشتن روی آن، ایجاد میکند. اگر فایل از قبل وجود داشته باشد، FALSE و خطا را برمی گرداند.
► r+ : یک فایل را برای خواندن / نوشتن باز میکند. اشاره گر فایل از ابتدای فایل شروع می شود.
► w+ : فایلی را با خاصیت خواندن/ نوشتن باز میکند. . محتویات فایل را پاکسازی میکند و یا در صورت عدم وجود فایل، یک فایل جدید ایجاد میکند. اشاره گر فایل در ابتدای فایل شروع می شود.
► a+ : فایلی را برای خواندن / نوشتن باز میکند. . اشاره گر فایل در انتهای فایل شروع می شود و اگر فایل وجود ندارد، فایل جدیدی ایجاد میکند و . محتویات موجود در فایل حفظ میشوند.
► x+ : فایل جدید برای خواندن/ نوشتن ایجاد میکند. اگر فایل از قبل وجود داشته باشد، FALSE و خطا را برمی گرداند.
♦ خواندن فایل در PHP – تابع fread
تابع fread، یک فایل باز را می خواند.
پارامتر اول تابع fread، شامل نام فایلی است که می خواهید بخوانید، و پارامتر دوم، حداکثر تعداد بایت ها برای خواندن را مشخص می کند.
کد PHP زیر فایل "webdictionary.txt" را تا انتها می خواند.
♦ تابع fclose() برای بستن فایل در PHP
تابع fclose برای بستن یک فایل باز استفاده می شود.
تابع fclose، به نام فایلی (یا متغیری که نام فایل را نگهداری می کند) که می خواهیم ببندیم نیاز دارد:
$myfile = fopen("webdictionary.txt", "r");
// some code to be executed....
fclose($myfile);
?)
♦ خواندن تنها یک خط از فایل با تابع fgets()
تابع fgets برای خواندن تنها یک خط از یک فایل به کار می رود. مثال زیر خط اول از فایل را برمی گرداند.
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fgets($myfile);
fclose($myfile);
?)
♦ بررسی پایان فایل با تابع feof()
تابع feof() چک میکند که به آخر فایل رسیده ایم. این تابع برای پیمایش داده های با طول نامشخص به کار می رود.
مثال زیر ، فایل "webdictionary.txt"، را خط به خط، تا وقتی به انتهای فایل برسد، می خواند:
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Output one line until end-of-file
while(!feof($myfile)) {
echo fgets($myfile) . "
";
}
fclose($myfile);
?)
♦ خواندن یک کاراکتر از فایل درPHP با تابع fgetc()
تابع fgetc() در 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);
?)
♦ ایجاد فایل در PHP – تابع fopen()
تابع fopen() همچنین برای ایجاد یک فایل استفاده می شود. شاید کمی ایجاد کننده باشد، اما در پی اچ پی، فایل با همان تابعی ایجاد می شود که برای باز کردن فایل به کار میرود.
اگر شما از تابع fopen برای فایل که وجود ندارد استفاده کنید، با توجه به اینکه فایل برای نوشتن و یا افزودن ایجاد شده است، از این تابع برای ایجاد فایل استفاده کنید.
مثال زیر یک فایل جدید به نام "testfile.txt" ایجاد میکند. فایل مورد نظر در همان دایرکتوری که کد پی اچ پی قرار دارد، ایجاد میوشد:
♦ تابع fwrite() برای نوشتن در فایل PHP
تابع fwrite برای نوشتن روی یک فایل کاربرد دارد.
پارامتر اول از این تابع، شامل نام فایل مقصد است و پارامتر دوم رشته ای است که میخواهید در فایل بنویسید.
مثال زیر جفت نام را در یک فایل جدید به نام "newfile.txt" می نویسد:
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "John Doe ";
fwrite($myfile, $txt);
$txt = "Jane Doe ";
fwrite($myfile, $txt);
fclose($myfile);
?)