کار با فایل ها در php
آموزش کار با فایل ها در زبان برنامه نویسی php

در این درس به عملیات زیر که مبحث کار با فایل ها در php سر و کار دارد میپردازیم : 

  • باز کردن یک فایل
  • خواندن یک فایل
  • نوشتن روی یک فایل
  • بستن یک فایل

 

باز کردن و بستن فایل ها در زبان php

در زبان برنامه نویسی php تابع fopen برای باز کردن یک فایل میباشد . این تابع دو ورودی میپذیرد که اولی نام فایلی است که میخواهیم باز کنیم و دومی شیوه و نوع باز کردن فایل میباشد که انواع مدلهای باز کردن فایل در php را در زیر نوشتیم : 

شماره مدل و هدف 
1
فایل را بعنوان یک فایل فقط خواندنی یا read only باز میکند .
اشاره گر در ابتدای محتوای فایل قرار میگیرد
2 r+
باز کردن فایل با منظور خواندن و همچنین نوشتن اطلاعات روی آن . 
اشاره گر در ابتدای محتوای فایل قرار میگیرد . 
3
باز کردن فایل با منظور فقط نوشتن اطلاعات روی آن .
اشاره گر در ابتدای فایل قرار میگیرد  وطول فایل به صفر کاهش پیدا میکند  . 
اگر فایل به کل وجود نداشته باشد ساخته میشود . 
4 w+
باز کردن فایل با منظور نوشتن اطلاعات و همچنین خواندن.
اشاره گر در ابتدای فایل قرار میگیرد  وطول فایل به صفر کاهش پیدا میکند  . 
اگر فایل به کل وجود نداشته باشد ساخته میشود . 
5 a
فایل را با منظور فقط نوشتن اطلاعات روی آن باز میکند . 
اشاره گر در ابتدا قرار میگیرد 
اگر فایل وجود نداشته باشد ساخته میشود 
6 a+
فایل را با منظور فقط نوشتن اطلاعات و خواندن انها صورت میگیرد. 
اشاره گر در ابتدا قرار میگیرد 
اگر فایل وجود نداشته باشد ساخته میشود 

اگر باز کردن یک فایل توسط تابع fopen  به هر دلیلی امکان پذیر نباشد این تابع مقدار false برمیگرداند و اگر با موفقیت فایل باز شود file pointer برگردانده میشود که برای نوشتن و خواندن اطلاعات به درد میخورد . 

بعد از اینکه کارمان با فایل تمام شد ، یک مورد مهم وجود دارد و آن بستن آن فایل با تابع fclose میباشد . 

تابع fclose یک file pointer را بعنوان آرگومان درخواست میکند و زمانی که فایل با موفقیت بسته شد ،true برمیگرداند  و اگر با خطا مواجه شد false برمیگرداند . 

 

خواندن محتویات یک فایل در php 

در زبان برنامه نویسی پی اچ پی ، زمانی که یک فایل با استفاده از تابع fopen باز شد ، وقت آن رسیده است که محتویات درونی آن با تابع fread خوانده شود. 

این تابع دو آرگومان ورودی دارد که یکی اشاره به فایل مورد نظر میباشد و دیگری سایز آن میباشد که به بایت باید تعریف شود . 

طول یا سایز فایل میتواند توسط تابع filesize بصورت کامل به دست بیاید . 

این تابع یک ورودی دارد و آن هم فایل هست و سایز فایل را به بایت حساب میکند و تحویل میدهد .

بصورت جمع بندی کارهایی که برای خواندن محتوای یک فایل باید انجام پذیرد  :

  • فایل توسط تابع fopen باز شود .
  • سایز فایل توسط تابع filesize محاسبه شود .
  • محتوای فایل توسط تابع fread خوانده شود . 
  • فایل توسط تابع fclose بسته شود .

برای جمع بندی بالا مثال زیر را میتوانید استفاده کنید تا مبحث را کامل تر یاد بگیرید  

<html>

   <head>
      <title>Reading a file using PHP</title>
   </head>
   
   <body>
      
      <?php
         $filename = "tmp.txt";
         $file = fopen( $filename, "r" );
         
         if( $file == false ) {
            echo ( "Error in opening file" );
            exit();
         }
         
         $filesize = filesize( $filename );
         $filetext = fread( $file, $filesize );
         fclose( $file );
         
         echo ( "File size : $filesize bytes" );
         echo ( "<pre>$filetext</pre>" );
      ?>
      
   </body>
</html>

 

خروجی کدهای بالا باید به شکل زیر باشد : 

خواندن محتویات فایل توسط php

 

نوشتن اطلاعات بر روی یک فایل در php

در زبان php اگر بخواهیم به یک فایل جدید یا یک فایل که محتوا داشته باشد ، اطلاعات بنویسیم از تابع fwrite استفاده میکنیم.

این تابع دو آرگومان بعنوان ورودی دارد که یکی اشاره به فایل مورد نظر است و دومی رشته ای که میخواهیم به فایل اضافه شود . 

البته یک آرگومان دیگر بعنوان سومین ورودی این تابع بصورت اختیاری وجود دارد که طول اطلاعاتی که میخواهیم در فایل نوشته شود را مشخص میکند . اگر سومین آرگومان تعریف شود عمل نوشتن روی فایل بعد از رسیدن به آن طول متوقف میشود . 

مثال زیر یک فایل جدید درست میکند و یک متن ساده در آن مینویسد برای بررسی اینکه فایلی وجود دارد یا نه میتوانید از تابع file_exist استفاده کنید . 

<?php
   $filename = "/home/user/guest/newfile.txt";
   $file = fopen( $filename, "w" );
   
   if( $file == false ) {
      echo ( "Error in opening new file" );
      exit();
   }
   fwrite( $file, "This is  a simple test\n" );
   fclose( $file );
?>
<html>
   
   <head>
      <title>Writing a file using PHP</title>
   </head>
   
   <body>
      
      <?php
         $filename = "newfile.txt";
         $file = fopen( $filename, "r" );
         
         if( $file == false ) {
            echo ( "Error in opening file" );
            exit();
         }
         
         $filesize = filesize( $filename );
         $filetext = fread( $file, $filesize );
         
         fclose( $file );
         
         echo ( "File size : $filesize bytes" );
         echo ( "$filetext" );
         echo("file name: $filename");
      ?>
      
   </body>
</html>

خروجی مثال بالا به شکل تصویر زیر خواهد بود  :

نوشتن اطلاعات روی فایل در php

------------------------------------------
آموزش ساخت فریمورک php mvc
ام وی سی یا مدل ویو و کنترلر یکی از مباحث اصلی در زبان برنامه نویسی php است که بعد از یادگیری زبان php باید به آن مسلط باشید. در یک دوره ی آموزش ویدیویی فارسی به بحث php mvc میپردازیم و با هم دیگر یک فریمورک کامل طراحی میکنیم.

اتمام درس