مدیریت فایلها در زبان برنامه نویسی PHP - بخش اول
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 6 دقیقه

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

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

چه امتیازی برای این مقاله میدهید؟

خیلی بد
بد
متوسط
خوب
عالی
در انتظار ثبت رای

/@roocketir

باور ما اینست که کاربران ایرانی لایق بهترین‌ها هستند، از این رو ما تمام تلاش خود را می‌کنیم تا بتوانیم فیلم‌ها و مقالات آموزشی بروز و کاربردی را در اختیارتان قرار دهیم تا با استفاده از آنها بتوانید جزء بهترین‌ها در صنعت طراحی و برنامه‌نویسی وب شوید. ما ادعا نمی‌کنیم که بهترین هستیم ولی همیشه تمام تلاش خود را می‌کنیم بهترین عملکرد را به شما ارائه دهیم.

دیدگاه و پرسش

برای ارسال دیدگاه لازم است وارد شده یا ثبت‌نام کنید ورود یا ثبت‌نام

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

پشتیبانی راکت

مقالات برگزیده

مقالات برگزیده را از این قسمت میتوانید ببینید

مشاهده همه مقالات