نوشتن در فایل

برای نوشتن در یک فایل از تابع fwrite() استفاده می شود. نحوه استفاده از این تابع به صورت زیر است :

fwrite(file,string,length)

این تابع سه آرگومان می گیرد. که دو آرگومان اولی اجباری و آخرین آرگومان اختیاری است. اولین آرگومان نام فایلی که قرار است در آن بنویسیم، دومین آرگومان متنی که قرار است در فایل نوشته شود و سومین آرگومان هم تعداد کاراکترهایی که می خواهیم در فایل نوشته شوند.خروجی این تابع از نوع عدد است و نشان دهنده تعداد کاراکترهایی است که در فایل نوشته شده اند. فرض کنید که یک فایل با نام Test.txt در داخل درایو :C داریم :
write-in-file-php-1
و می خواهیم متن Hello World. Testing! را در داخل آن بنویسیم. برای این کار به صورت زیر عمل می کنیم :

  1: <?php
  2:     $fileName = fopen("c:\Test.txt","w");
  3:     fwrite($fileName,"Hello World. Testing!");
  4:     fclose($file);
  5: ?> 

همانگونه که در کد بالا مشاهده می کنید ابتدا فایل را در حالت w (حالت نوشتنی) باز می کنیم و در خط 3 نام متغیری که در خط 2 تعریف کرده ایم که همان نام فایل است و همچنین متنی که قرار است در داخل فایل نوشته شود را به عنوان آرگومان به تابع ()fwrite می دهیم و در آخر بعد از اتمام کار فایل ر می بندیم. با اجرای کد بالا متن Hello World. Testing! در داخل فایل Test.txt نوشته می شود.
write-in-file-php-2
حال نحوه باز کردن فایل به صورت +r و نوشتن در آن را تست می کنیم. خطوط 2 و 3 کد بالا را به صورت زیر تغییر دهید :

$fileName = fopen("c:\Test.txt","r+");
fwrite($fileName,"Test for r+ ");

با اجرای کد بالا تابع fwrite شروع به نوشتن رشته فعلی بر روی رشته های قبلی موجود در فایل می کند. یا به طور واضحتر به تعداد کاراکترهای رشته جدید از رشته قبلی حذف و رشته جدید ر جایگزین می کند. برای روشن شدن مطلب به شکل زیر توجه کنید :
write-in-file-php-3
روش دیگر باز کردن فایل ها استفاده از a به عنوان آرگومان دوم است. خطوط 2 و 3 کد اصلی را به صورت زیر تغییر دهید :

$fileName = fopen("c:\Test.txt","a");
fwrite($fileName,"Test for a ");

با اجرای کد بالا متن Test for a به آخر متن موجود در فایل Test.txt اضافه می شود و شکل نهایی محتویات فایل به صورت زیر در می آید :
write-in-file-php-4

یکی دیگر از روش های نوشتن در یک فایل استفاده از تابع file_put_contents() است. و دستور استفاده از آن به صورت زیر می باشد:

file_put_contents(file,data,mode,context)

file در کد بالا همان فایلی است که می خواهیم چیزی در ان بنویسیم و data هم داده هایی هستند که می خواهیم در فایل نوشته شوند. مثلا در مثال همین درس فرض کنید اگر بخواهیم به فایل Test.txt به وسیله ی این تابع جمله ی “This is file_put_contents” را اضافه کنیم، باید به صورت زیر عمل کنیم :

<?php
   file_put_contents("c:\Test.txt","This is file_put_contents");
?>

 
اگر کد بالا را ذخیره و اجرا کنید، خروجی به صورت زیر خواهد بود :

file_put_contents_php-1
همانطور که در شکل بالا مشاهده می کنید این تابع در حالت عادی محتویات فایل را حذف و داده های جدید را اضافه می کند. برای جلوگیری از حذف شدن اطلاعات قبلی این تابع آرگومان سومی را هم قبول می کند. این آرگومان FILE_APPEND می باشد که اگر آن را هم به کد بالا اضافه کنیم داده های جدید به انتهای داده های قبلی اضافه می شوند :

<?php
   file_put_contents("c:\Test.txt"," function",FILE_APPEND);
?>

اگر کد بالا را ذخیره و اجرا کنید کلمه function به انتهای فایل اضافه می شود :
file_put_contents_php-5
اکنون که با روش های نوشتن در فایل آشنا شدید در درس بعد شما را با نحوه خواندن محتویات فایل آشنا می کنم.

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر مطرح بفرمایید.