با استفاده از توابع مدیریت فایل در زبان php امکان ذخیره و بازیابی انواع فایلها، اطلاعات و اسناد در یک بستر کارا، قابل جستجو و پیگیری، با قابلیت کنترل امکان پذیر خواهد بود.
فایل ها به دو دسته تقسیم می شوند . فایل ها با فرمت ascci و فایل با فرمت باینری. فایلهای با قالب متنی از نوع اسکی هستند.مثل .txt , html , asp , .php این نوع فایلها بر پایه متن استوار هستند. اما فایلهای باینری بر پایه داده ها استوارند مثل .jpg , mp3 , .gif در فایلهای باینری با نوع خاصی از ذخیره سازی اطلاعات سرو کار داریم.
در زبان برنامه نویسی php برای مدیریت این دو نوع فایل توابع زیادی معرفی شده اند که به ان اشاره می شود.
تابع file_get_contents
این تابع برای خواندن محتویات یک فایل به کار میرود. قالب کلی دستور العمل فوق به شرح زیر است.
file_get_contents(path,include_path,context,start,max_length)
path : ضروری. فایلی که قرار است خوانده شود را مشخص می کند.
include_path: اختیاری. اگر می خواهید برای فایل مورد نظر در inclue_path در php.ini ، جستجو کنید، این پارامتر را به '1' ست کنید.
Context: اختیاری. context فایل مورد استفاده را مشخص می کند. context یک مجموعه از گزینه هایی است که می تواند رفتار یک جریان(stream) را تغییر دهد. با استفاده از NULL می تواند از قلم انداخته شود.
Start : اختیاری. مشخص می کند که از کجای فایل باید خواندن شروع شود. این پارامتر در php 5.1 اضافه شده است.
max_length : اختیاری. مشخص می کند که چه تعداد بایت باید خوانده شود. این پارامتر در php 5.1 اضافه شده است.
مثال :
$txt = file_get_contents('readme.txt');
تابع file_put_contents
قالب کلی دستور العمل فوق به شرح زیر است.
file_put_contents(file,data,mode,context)
File : ضروری. فایلی که قرار است در آن نوشته شود را مشخص می کند. در صورتی که فایل مورد نظر وجود نداشته باشد این تابع یکی را ایجاد خواهد کرد.
Data : ضروری. داده هایی که قرار است در فایل مورد نظر نوشته شود. می تواند یک رشته، یک آرایه یا یک جریان داده(data stream) باشدMode : ختیاری. مشخص می کند که چطور فایل مورد نظر باز شود و یا در آن نوشته شود. مقادیر امکان پذیر:
FILE_USE_INCLUDE_PATH
FILE_APPEND
LOCK_EX
Context : اختیاری. محتوای فایل بکار رفته را مشخص می کند. منظور از محتوا(context) مجموعه ای از گزینه ها است که می توانند رفتار یک جریان(stream) را تغییر دهند.
مثال :
file_put_contents($filePath , $data);
تابع file
قالب کلی دستور العمل فوق به شرح زیر است.
file(path,include_path,context)
path ضروری. فایلی که قرار است خوانده شود را مشخص می کند.
include_path : اختیاری. اگر می خواهید به خوبی برای فایل درون (include_path(in php.ini جستجو کنید، این پارامتر را به '1' ست کنید.
Context : اختیاری. context فایل به کار برده شده را مشخص می کند. context مجموعه ای از گزینه ها است که رفتار یک جریان را می تواند تغییر دهد. با استفاده کردن از NULL می تواند از قلم انداخته شود.
تابع file() در PHP کل محتوای فایل مورد نظر را در قالب یک آرایه برمی گرداند. هر المان از آرایه معادل یک خط از محتوا در فایل می باشد در حالی که هر المان در خطی مجزا قرار می گیرد. در صورت عدم موفقیت در انجام عملیات، این تابع مقدار FALSE را برمی گرداند.
$fileContent = file('readme.txt');
مثال:
$lines = file('http://www.tutorialspoint.com/');
foreach ($lines as $line_num =--> $line) {
echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line)
echo "<br>\n";
}
تابع fopen
قالب کلی دستور العمل فوق به شرح زیر است.
$ نام یک متغیر دلخواه = fopen ( " نحوه باز کردن فایل " , " نام یا آدرس فایل مورد نظر " ) ;
r :در این حالت فایل به صورت فقط خواندنی و از ابتدای آن باز می شود . در این حالت امکان تغییر فایل برای کاربر وجود ندارد .
+r: در این حالت فایل به صورت خواندنی ، قابل ویرایش و از ابتدا باز می شود . در این حالت امکان تغییر فایل برای کاربر وجود دارد .
W: در این حالت فایل به صورت فقط نوشتنی و قابل تغییر باز می شود . در این حالت چنان فایل از قبل وجود داشته باشد ، محتویات آن پاک می شود . و اگر وجود نداشته باشد ، یک فایل جدید ایجاد می شود
+w: در این حالت فایل به صورت خواندنی و نوشتنی و قابل تغییر باز می شود . در این حالت چنان فایل از قبل وجود داشته باشد ، محتویات آن پاک می شود . و اگر وجود نداشته باشد ، یک فایل جدید ایجاد می شود
A: در این حالت فایل باز شده و متن تعیین شده به انتهای آن اضافه می شود
X: در این حالت یک فایل جدید با نام تعیین شده ایجاد و به صورت فقط نوشتنی باز می شود . چنانچه فایل از قبل وجود داشته باشد ، برنامه پیام error صادر کرده و مقدار false را بر می گرداند
+x: در این حالت یک فایل جدید با نام تعیین شده ایجاد و به صورت خواندنی و نوشتنی باز می شود . چنانچه فایل از قبل وجود داشته باشد ، برنامه پیام error صادر کرده و مقدار false را بر می گرداند
ابن تابع آدرس یک فایل را میگیره و یک اشاره گر رو برای استفاده در بقیه توابع برگشت می دهد.
$file = fopen("test.txt","r");
از اشاره گر $file میتونیم در توابع دیگه مانند fread استفاده کنیم.پارامتر اول مسیر فایل و پارامتر دوم نحوه دسترسی به فایل رو مشخص میکنه که در این مثال از r به معنای read جهت باز کردن فایل فقط برای خواندن استفاده شده است.
تابع fclose
بعد از تمام شدن کار ما با فایل مورد نظر باید با استفاده از این تابع اتصال به فایل رو ببندیم.
fclose($file);
مثال :
$file = fopen("test.txt","r");
//some code to be executed
fclose($file);
تابع fread
محتویات فایل رو به صورت رشته برگشت میده.
fread($file,filesize("test.txt"));
پارامتر اول این تابع اشاره گر ساخته شده به وسیله تابع fopen و پارامتر دوم تعداد بایتهایی که باید از فایل خوانده شود را مشخص می نماید.
تابع filesize تعداد بایتهای یک فایل رو برمیگردونه که در مثال به این معنیه که تمام محتویات فایل مورد نظر با استفاده از تابع fread برگشت داده بشه.
مثال :
خواندن 10 بایت از فایل:
$file = fopen("test.txt","r");
fread($file,"10");
fclose($file);
تابع fgets
این تابع یک خط از فایل را خوانده و جهت عملیات بعدی برمی گرداند.
echo fgets($file);
مثال : روش خواندن محتویات یک فایل به صورت خط به خط
برای خواندن همه خطوط موجود در فایل به شکل زیر عمل میکنیم :
$file = fopen("test.txt","r");
while(! feof($file))
{
echo fgets($file). "<br />";
}
fclose($file);
در هر بار اجرای حلقه با تابع feof چک میکنیم که به انتهای فایل رسیده ایم یا خیر.
تابع fgetc
این تابع یک کاراکتر از فایل رو برمیگردونه
echo fgetc($file);
مثال : روش خواندن محتویات یک فایل به صورت کاراکتر به کاراکتر
$file = fopen("test2.txt","r");
while (! feof ($file))
{
echo fgetc($file);
}
fclose($file);
تابع fwrite
با این تابع هم میتونید داخل فایل بنویسید.
fwrite($file , "phpro.ir");
دقت کنید که برای استفاده از این تابع باید فایل رو با سطح دسترسی w یا +w باز کنید که اجازه نوشتن داخل فایل رو داشته باشید.
$file = fopen("test.txt","w");
echo fwrite($file,"Hello World. Testing!");
fclose($file);
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید