آموزش PHP

آموزش PHP - فایل ها و I/O

این فصل توابع مربوط به کار کردن با فایل ها در php را توضیح می دهد:

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

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

تابع ()fopen در PHP  برای باز کردن یک فایل استفاده می شود. که نیاز به دو آرگومان دارد،اول نام فایل و سپس حالت که در آن به کار می رود.

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

حالت

هدف

r

فایل را فقط برای خواندن باز می کند.

اشاره گر فایل را در ابتدای فایل قرار می دهد.

r+

فایل را برای خواندن و نوشتن باز می کند.

اشارهگر فایل را در ابتدای فایل قرار می دهد.

w

فایل را فقط برای نوشتن باز می کند.

اشاره گر فایل را در ابتدای فایل قرار می دهد.

و فایل را به صفر برساند. اگر فایل ها نباشد

وجود دارد و برای ایجاد یک فایل تلاش می کند.

w+

فایل را فقط برای خواندن و نوشتن باز می کند.

اشاره گر فایل را در ابتدای فایل قرار می دهد.

و فایل را به صفر برساند. اگر فایل ها نباشد

وجود دارد و برای ایجاد یک فایل تلاش می کند.

a

فایل را فقط برای نوشتن باز می کند.

اشارهگر فایل را در انتهای فایل قرار می دهد.

اگر فایل ها وجود نداشته باشند، آنگاه تلاش می کند تا یک فایل ایجاد کند.

a+

فایل را فقط برای خواندن و نوشتن باز می کند.

اشاره گر فایل را در انتهای فایل قرار می دهد.

اگر فایل ها وجود نداشته باشند، آنگاه تلاش می کند تا یک فایل ایجاد کند.

 

اگر تلاش برای باز کردن یک فایل انجام نشود، fopen مقدار false  را باز می گرداند؛ در غیر این صورت یک اشارهگر فایل یا file pointer را باز می کند که برای خواندن یا نوشتن بیشتر در آن فایل استفاده می شود.

پس از ایجاد تغییر در فایل باز شده، مهم است که آن را با استفاده از تابع ()fclose ببندید. تابع ()fclose نیاز به اشاره گر فایل به عنوان آرگومان دارد و پس از بسته شدن موفق true یا در صورت شکست false  را باز می گرداند.

خواندن یک فایل

هنگامی که یک فایل با استفاده از تابع ()fopen باز می شود می توان آن را با یک تابع ()fread خواند. این تابع نیاز به دو استدلال دارد. که نشانگر فایل و طول فایل بیان شده در بایت می باشند.

طول فایل ها را می توان با استفاده از تابع ()filesize پیدا کرد که نام فایل را به عنوان آرگومان آن می گیرد و اندازه فایل بیان شده در بایت را می دهد.

بنابراین در اینجا مراحل مورد نیاز برای خواندن فایل با PHP قرار دارد.

  • فایل را با استفاده از تابع ()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>

نتیجه زیر را تولید می کند:

reading file

نوشتن یک فایل

یک فایل جدید می تواند نوشته شود یا متن را می توان به یک فایل موجود با استفاده از تابع ()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 testn" );
   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>

نتیجه زیر را تولید می کند:

writing file

ما تمام تابع مربوط به ورود و خروج فایل را در بخش توابع فایل سیستم PHP تحت پوشش قرار داده ایم.

در صورتی که سوال و یا نظری دارید، از بخش نظرات با ما در میان بگذارید.

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

شما چه نظر و یا سوالی درباره این نوشته دارید؟

مبحث آموزشی

آموزش PHP

Learn PHP

سرفصل ها

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

کلیک کنید و سوالات خود را از ما بپرسید
لطفا فرم سوال را پر کنید

سوال شما با موفقیت ثبت شد. برای اینکه بتوانیم به شما اطلاع رسانی کنیم، موارد زیر را وارد کنید:

لطفا چند لحظه منتظر بمانید ...