کار با فایل ها در php

ناصر نادری | 1394/02/13


بنام خدا .

کار با فایلها در php موضوع این جلسه ما خواهد بود .

یکی از بخش های مهم هر زبان برنامه نویسی بخش دستورات مربوط به دسترسی به فایلهاست . شما به دلایل مختلف ممکنه توی برنامه خودتون نیاز به دسترسی به فایل داشته باشید از جمله برای پردازش یک فایل متنی  یا استریم کردن یک فایل برای دانلود و غیره...

دستورات مربوط به فراخوانی و دستکاری و ذخیره فایلها کلا توی چند دسته تقسیم میشن :

1- باز کردن فایل

2- خواندن فایل

3- نوشتن در فایل

4- بستن فایل

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

برای باز کردن یک فایل در php از تابع fopen() استفاده میکنیم  . اگه فایل به هر ترتیبی باز نشد و یا وجود نداشت مقدار false رو برمیگردونه در غیر اینصورت اشاره گری به اون فایل رو برمیگردونه که میتونیم بعدا برای بستن و استفاده های دیگه از فایل باز شده ازش استفاده کنیم .

 $filename = "/myfiles/vote.txt";
//فراخوانی فایل از آدرس داده شده و برگردوندن اشاره گر به فایل
$file = fopen( $filename, "r" ); 

پارامتر دوم برای تعیین مقصد ما از باز کردن فایل هست که میتونه یکی از موارد زیر بسته به نیازمون باشه :

r باز کردن فایل بصورت فقط خواندنی

و قرار داده اشاره گر فایل در اول فایل

r+ باز کردن فایل بصورت خواندنی و نوشتنی

و قرار داده اشاره گر فایل در اول فایل

w باز کردن یک فایل بصورت فقط نوشتنی

قرار دادن اشاره گر در اول فایل

طول فایل را صفر فرض میکند یعنی  پاکش میکنه

اگه فایلی با اون نام پیدا نشد ایجادش میکنه

w+ باز کردن یک فایل بصورت  خواندنی و نوشتنی

قرار دادن اشاره گر در اول فایل

طول فایل را صفر فرض میکند یعنی  پاکش میکنه

اگه فایلی با اون نام پیدا نشد ایجادش میکنه

a باز کردن یک فایل بصورت فقط نوشتنی

قرار دادن اشاره گر در انتهای  فایل برای اضافه کردن به فایل

اگه فایلی با اون نام پیدا نشد ایجادش میکنه

a+ از کردن یک فایل بصورت خواندنی و  نوشتنی

قرار دادن اشاره گر در انتهای  فایل برای اضافه کردن به فایل

اگه فایلی با اون نام پیدا نشد ایجادش میکنه

برای بستن یک فایل در php از تابع fclose() به همراه اشاره گر فایل که هنگام باز کردن بهش داده بودیم استفاده میکنیم .

 fclose( $file ); 

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

 $filesize = filesize( $filename );
$filetext = fread( $file, $filesize ); 

مثال زیر مجموع این اعمال رو نشون میده :

 $filename = "/myfiles/vote.txt";
$file = fopen( $filename, "r" );
if( $file == false )
{
    echo ( "خطا در باز کردن فایل" );
    exit();
}
$filesize = filesize( $filename );
// باز کردن یک فایل متنی و خواندن محتوی آن و قرار دادن محتوی در یک متغییر رشته ای
$filetext = fread( $file, $filesize );

fclose( $file );

echo ( "اندازه فایل : $filesize bytes" );
echo ( "<pre>$filetext</pre>" );
?> 

برای نوشتن در داخل فایل از fwrite() استفاده میکنیم . این متد دوپارامتر داره که یکیش اشاره گر به فایل هست دیگری متنی که داخل فایل باید نوشته بشه . در اینجا باید دقت کنید رو به w باز کنید محتوی قدیمی فایل پاک میشه و یا فایل جدید ایجاد میکنه (در صورتی که فایل موجود نباشه) و اگر از a استفاده کنیم محتوی فعلی رو به محتوی قبلی اضافه میکنه .

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

 <?php
$filename = "/myfiles/newfile.txt";
// باز کردن فایل بصورت فقط نوشتنی
$file = fopen( $filename, "w" );
if( $file == false )
{
    echo ( "خطا در باز کردن فایل" );
    exit();
}
fwrite( $file, "محتویی که داخل فایل مینویسیم\n" );
fclose( $file );
?>
/////////////////////////////////////////////////////

<?php
// چک کردن موجودیت فایل
if( file_exist( $filename ) )
{
    $filesize = filesize( $filename );
    $msg = "فایل ایجاد شده با نام : $filename ";
    $msg .= "دارای محتوی $filesize bytes";
    echo ($msg );
}
else
{
    echo ("فایل $filename وجود ندارد" );
}
?>
</body>
</html> 

تا جلسه بعد در پناه حق...


فایلهای ضمیمه
توجه! هیچ فایل ضمیمه ای برای این مطلب یافت نشد

نظرات شما نظر جدید