- پی اچ پی
- زمان 5 دقیقه
به وسیله قابلیت های کار با فایل ها در PHP ، شما می توانید فایل های متنی و یا سایر فایل ها را باز کرده ، خوانده ، ویرایش نموده و یا جستجو نمایید .
در این بخش قصد داریم تا متدها و توابعی که برای کار با فایل ها در PHP در نظر گرفته شده اند ، را تشریح نماییم .
- باز کردن یک فایل – متد ( ) fopen
- شکل کلی استفاده از این متد به صورت زیر است
- مقدار نحوه باز کردن فایل
- اگر سرور فایل را پیدا نکرده و یا وجود نداشت ، چه می شود
- بستن یک فایل باز شده – متد ( ) fclose
- چک کردن اینکه به آخر فایل رسیده ایم یا خیر ؟ – متد ( ) feof
- خواندن یک فایل به صورت خط به خط
- مرجع توابع کار با فایل ها در PHP
- پیش نیاز نصب
- فهرست توابع
باز کردن یک فایل – متد ( ) fopen :
به وسیله تابع ( ) fopen در PHP ، می توانید یک فایل را باز کنید .
این تابع دو پارامتر اصلی دارد . پارامتر اول تعیین کننده نام و آدرس فایل و پارامتر دوم تعیین کننده نحوه باز کردن فایل است . در ادامه به توضیح این پارامترها خواهیم پرداخت .
برای کار با این تابع ، باید خروجی آن را در یک متغیر ذخیره نمود و سپس آن متغیر را در سطح برنامه استفاده نمود .
شکل کلی استفاده از این متد به صورت زیر است :
<?php $ نام یک متغیر دلخواه = fopen ( " نحوه باز کردن فایل " , " نام یا آدرس فایل مورد نظر " ); ?>
مثال :
<?php $My_File = fopen ( " Example.txt " , " r" ); ?>
گفتیم که پارامتر اول تعیین کننده نام و یا آدرس فایل مورد نظر است . اما پارامتر دوم تعیین کننده نحوه باز شدن فایل است . این پارامتر می تواند یکی از مقادیر جدول زیر را داشته باشد . ضمنا عمکلرد هر مقدار نیز توضیح داده شده است :
مقدار نحوه باز کردن فایل
r در این حالت فایل به صورت فقط خواندنی و از ابتدای آن باز می شود . در این حالت امکان تغییر فایل برای کاربر وجود ندارد .
+r در این حالت فایل به صورت خواندنی ، قابل ویرایش و از ابتدا باز می شود . در این حالت امکان تغییر فایل برای کاربر وجود دارد .
w در این حالت فایل به صورت فقط نوشتنی و قابل تغییر باز می شود . در این حالت چنان فایل از قبل وجود داشته باشد ، محتویات آن پاک می شود . و اگر وجود نداشته باشد ، یک فایل جدید ایجاد می شود .
+w در این حالت فایل به صورت خواندنی و نوشتنی و قابل تغییر باز می شود . در این حالت چنان فایل از قبل وجود داشته باشد ، محتویات آن پاک می شود . و اگر وجود نداشته باشد ، یک فایل جدید ایجاد می شود .
a در این حالت فایل باز شده و متن تعیین شده به انتهای آن اضافه می شود .
x در این حالت یک فایل جدید با نام تعیین شده ایجاد و به صورت فقط نوشتنی باز می شود . چنانچه فایل از قبل وجود داشته باشد ، برنامه پیام error صادر کرده و مقدار false را بر می گرداند .
+x در این حالت یک فایل جدید با نام تعیین شده ایجاد و به صورت خواندنی و نوشتنی باز می شود . چنانچه فایل از قبل وجود داشته باشد ، برنامه پیام error صادر کرده و مقدار false را بر می گرداند .
اگر سرور فایل را پیدا نکرده و یا وجود نداشت ، چه می شود :
اگر فایلی که در تابع ( ) fopen تعیین کرده ایم ، وجود نداشت و یا سرور موفق نشد ، آن را پیدا کند ، برنامه یک پیام error صادر کرده و مقدار false یا ۰ را بر می گرداند .
اسکریپت زیر ، در صورتی که فایل وجود نداشته باشد ، یک پیام هشدار را به کاربر نمایش می دهد :
<?php $file = fopen ( " welcome.txt " , " r " ) or exit ( " Unable to open file ! " ) ; ?>
بستن یک فایل باز شده – متد ( ) fclose :
پس از اینکه یک فایل را با دستور ( ) fopen باز کردیم ، می توانیم آن را با دستور ( ) fclose ببندیم .
برای این منظور باید نام متغیری که در هنگام باز کردن فایل به کار بردیم و محتویات فایل را درون آن ذخیره نمودیم را در پرانتز مقابل تابع ( ) fclose قرار دهیم .
شکل کلی استفاده از این متد به صورت زیر است :
<?php fclose ( " نام متغیری که فایل باز شده را در آن قرار داده بودیم" ); ?>
مثال :
<?php $My_File = fopen ( " Example.txt " , " r" ) ; // یک فایل را با این دستور باز کرده ایم .. .. fclose ( $My_File ) ; // فایل باز شده را بسته ایم ?>
چک کردن اینکه به آخر فایل رسیده ایم یا خیر ؟ – متد ( ) feof :
تابع ( ) feof ، چک می کند که آیا برنامه به آخر یک فایل رسیده است یا خیر .
این تابع برای جستجو و یا خواندن فایل های داده ای با حجم نامشخص استفاده می شود . در این موارد ، برنامه هنگامی که به آخر فایل برسد ، باید جستجو یا عملیات خواندن را متوقف کند .
نکته : از این تابع در زمانی که فایل را با حالت های w , a و x باز کرده اید ، نمی توانید استفاده نمایید .
شکل کلی استفاده از این متد به صورت زیر است :
<?php feof ( نام فایل مورد نظر ); ?>
مثال : در مثال زیر یک اسکریپت طراحی شده است که فایل My_File$ را بررسی کرده و چنانچه برنامه به آخر آن رسیده باشد ، یک پیام صادر می کند :
<?php if ( feof ( $ My_File ) ) echo " End of file "; ?>
خواندن یک فایل به صورت خط به خط :
به وسیله تابع ( ) fgetc در PHP ، می توانید یک فایل متنی را باز کرده و به صورت خط به خط ، بخوانید . سپس در صورت نیاز در خروجی چاپ نمایید .
این تابع فایل را به صورت خط به خط خوانده و پس از خواندن یک خط ، اشاره گر به ابتدای خط بعدی منتقل می شود .
مثال : اسکریپت مثال زیر یک فایل متنی را به وسیله یک دستور حلقه ، به صورت خط به خط خوانده و سپس در خروجی چاپ می نماید :
<?php $file = fopen( "welcome.txt", "r" ) or exit ( "Unable to open file!" ); // حلقه زیر فایل را به صورت خط به خط تا رسیدن به آخر آن می خواند و در خروجی نمایش می دهد while ( !feof ( $file ) ) { echo fgets ( $file ) . "< br />"; } fclose( $file ); ?>
مرجع توابع کار با فایل ها در PHP :
توابع کار با فایل ها در PHP ، امکان دسترسی و کار با فایل ها را در این زبان به شما می دهند . به وسیله این توابع ، می توانید فایل های روی سرور را باز کرده ، بخوانید ، تغییر دهید و … .
پیش نیاز نصب :
مجموعه توابع کار با فایل ها ، جزء هسته اصلی زبان ۸ بوده و برای استفاده از آنها به نصب یا تغییر خاصی در تنظیم سرورتان نیست .
فهرست توابع :
basename ( ): این تابع ، نام یک فایل که آدرس آن تعیین شده را بر می گرداند .
chgrp ( ): این تابع ، گروه کاربرانی که امکان دسترسی به یک فایل خاص را دارند ، تعیین می کند .
chmod ( ): این تابع ، سطح دسترسی به یک فایل خاص را مشخص می کند .
chown ( ): این تابع ، مالک ( owner ) فایل مورد نظر را تغییر می دهد .
clearstatcache ( ): این تابع ، میزان حافظه اشغال شده توسط یک تابع یا فایل در حافظه موقت را آزاد می کند .
copy ( ): این تابع ، محتویات یک فایل مورد نظر را در مکانی دیگر بر روی سرور ، کپی می کند .
dirname ( ): این تابع ، نام پوشه جاری در یک آدرس داده شده به آن را بر می گرداند .
disk_free_space ( ): این تابع ، میزان فضای خالی در یک پوشه که آدرس آن داده شده را بر حسب bytes بر می گرداند .
disk_total_space ( ): این تابع ، میزان فضای کلی یک پوشه که آدرس آن داده شده را بر حسب bytes بر می گرداند .
diskfreespace ( ): این تابع ، میزان فضای خالی در یک پوشه که آدرس آن داده شده را بر حسب bytes بر می گرداند . عملکرد این تابع همانند تابع ( ) disk_free_space است .
دیدگاه خود را بیان کنید