عنوان مقاله :

مدیریت فایلها در زبان برنامه نویسی PHP - بخش اول

گردآوری و تالیف : محمد صادق زحمتکش
تاریخ انتشار : 12 مرداد 1396
دسته بندی ها : پی اچ پی

با استفاده از توابع مدیریت فایل در زبان 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);
برچسب :

مقالات پیشنهادی

مزایا و معایب فریم ورک Codeigniter

فریم‌ورک‌ ها در واقع کلاس‌های منسجم و از پیش آماده‌ای هستند که برنامه‌نویسی را برای ما لذت‌بخش‌تر، ساده‌تر و البته امن‌تر می‌کنند. استفاده از فریم‌ورک...

کتابخانه ی پی اچ پی Jaxon

کتابخانه ی Jaxon یک کتابخانه ی php مبتنی بر جاوااسکریپت است که این قابلیت را به ما می دهد تا از خصوصیات AJAX در پروژه بهره ببریم.

کتابخانه پی اچ پی - CssToInlineStyles

 همان طور که میدانید برای ساخت یک ایمیل در قالب HTML  ،کد‌های CSS باید بصورت inline نوشته شود. CssToInlineStyles این کار را به راحتی برای‌مان انجام خو...

کوکی ها در php

کوکی یک قطعه اطلاعات (یک فایل متنی) است که سرور بر روی کامپیوتر کاربر ذخیره کرده و در مراجعات کاربر به همان سایت ، از آن اطلاعات برای شناسایی وی استفا...

دیدگاه های ارزشمند شما

برای ارسال نظر لازم است ابتدا وارد سایت شوید
هیچ دیدگاهی تا به این لحظه برای این موضوع ثبت نشده است