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

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

تابع ()copy

تابع() copy یک فایل را کپی می کند. 

این تابع، در صورت موفقیت TRUEرا برمی گرداند و در صورت شکست FALSE را برمی گرداند. 

قالب کلی دستور العمل فوق به شرح زیر است.

copy(file,to_file)

file : فایل مورد نظر برای کپی را مشخص می کند

to_file : ری. مکانی که قرار است فایل به آنجا کپی شود را مشخص می کند

مثال :

echo copy("source.txt","target.txt");

نکته: اگر فایل مقصد، قبلا وجود داشته باشد، بازنویسی خواهد شد 

تابع chmod

تابع chmod دسترسی های یک فایل مشخص را تغییر می دهد. 

در صورت موفقیت، TRUE و در صورت شکست FALSE را برمی گرداند. 

قالب کلی دستور العمل فوق به شرح زیر است.

chmod(file,mode)

file : فایل مورد نظر برای کپی را مشخص می کند

Mode : ضروری. دسترسی های جدید را مشخص می کند. 

پارامتر mode دربردارنده ی 4 عدد می باشد:

  • عدد اول همواره 0 است. 
  • عدد دوم دسترسی های مالک را مشخص می کند.
  • عدد سوم دسترسی های گروه کاربری مالک را مشخص می کند. 
  • عدد چهارم دیگر دسترسی ها را (برای افراد دیگر) مشخص می کند. 

مقادیر امکان پذیر( برای ست کردن دسترسی های چندگانه ) ، اعداد زیر را اضافه کنید:

  • 1 دسترسی های اجرایی
  • 2 دسترسی های نوشتن
  • 4 دسترسی های خواندن

مثال

//  خواندن و نوشتن برای مالک و عدم دسترسی برای دیگران
chmod("test.txt",0600);

// خواندن و نوشتن برای مالک، و خواندن برای دیگران.
chmod("test.txt",0644);

//  همه چیز برای مالک، خواندن و اجرا کردن برای دیگران
chmod("test.txt",0755);

//  همه چیز برای مالک، خواندن برای گروه مالک.
chmod("test.txt",0740);

تابع chown 

تابع chown مالکیت یک فایل مشخص را تغییر می دهد.

در صورت موفقیت TRUE و در صورت شکست FALSE را برمی گرداند. 

قالب کلی دستور العمل فوق به شرح زیر است.

chown(file,owner)

file : ضروری. فایلی که قرار است چک شود را  مشخص می کند. 

Owner : ضروری. مالک جدید را مخص می کند. می تواند یک username یا یک user ID باشد.

مثال :

chown("test.txt","charles")

تابع feof

تابع feof() بررسی می کند که آیا به EOF رسیده ایم یا نه. EOF مخفف end-of-file است و به معنی پایان یک فایل می باشد. 

در صورتی که یک خطا روی دهد یا به EOF رسیده باشیم، این تابع TRUE را برمی گرداند. در غیر این صورت FALSE برگردانده خواهد شد. 

قالب کلی دستور العمل فوق به شرح زیر است.

feof(file) 

file: ضروری. فایلی که قرار است چک شود را  مشخص می کند. 

مثال :

$file = fopen("test.txt", "r");

//Output a line of the file until the end is reached
while(! feof($file))
  {
  echo fgets($file). "<br />";
  }

fclose($file);

تابع file_exists

تابع file_exists بررسی می کند که آیا یک فایل یا یک دایرکتوری، موجود است یا نه. 

در صورتی که فایل یا دایرکتوری مورد نظر وجود داشته باشد این تابع TRUE را برمی گرداند در غیر این صورت FALSE برگردانده خواهد شد. 

قالب کلی دستور العمل فوق به شرح زیر است.

file_exists(path)

path : ضروری. مسیری که قرار است بررسی شود را مشخص می کند

مثال :

echo file_exists("test.txt");

تابع fileperms

تابع fileperms مجوزهای(permissions) یک فایل یا دایرکتوری را برمی گرداند.

این تابع در صورت موفقیت، مجوزها را بعنوان یک عدد، برمی گرداند و در صورت شکست، FALSE را برمی گرداند. 

قالب کلی دستور العمل فوق به شرح زیر است.

fileperms(filename)

filename : ضروری. فایلی که قرار است بررسی شود را مشخص می کند. 

نکته: نتیجه ی این تابع در کش ذخیره می شود. برای پاک کردن کش از تابع clearstatcache استفاده کنید. 

مثال :

echo fileperms("test.txt");

تابع flock

تابع flock یک فایل را قفل کرده و یا آزاد می کند. 

این تابع در صورت موفقیت TRUE و در صورت شکست FALSE را برمی گرداند. 

قالب کلی دستور العمل فوق به شرح زیر است.

flock(file,lock,block)

file : ضروری. فایلی که قرار است چک شود را  مشخص می کند. 

Lock : ضروری. مشخص می کند که از چه نوع قفلی استفاده شود. 

مقادیر امکان پذیر :

  • LOCK_SH - قفل به اشتراک گذاشته شده(reader). به دیگر پروسه ها اجازه ی دسترسی به فایل را می دهد.
  • LOCK_EX -قفل انحصاری(writer). از دسترسی دیگر پروسه ها به فایل اجتناب می کند. 
  • LOCK_UN -یک قفل اشتراکی یا انحصاری را آزاد می کند. 
  • LOCK_NB -از مسدود کردن دیگر پروسه ها به هنگام قفل شدن اجتناب می کند. 

Block : اختیاری. برای مسدود کردن دیگر پروسه ها به هنگام قفل کردن آن را به 1 ست کنید. 

$file = fopen("test.txt","w+");

// exclusive lock
if (flock($file,LOCK_EX))
  {
  fwrite($file,"Write something");
  // release lock
  flock($file,LOCK_UN);
  }
else
  {
  echo "Error locking file!";
  }

fclose($file);

تابع fseek

تابع fseek در یک فایل باز شده پویش می کند. 

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

این تابع در صورت موفقیت 0 را برمی گرداند و در صورت شکست 1- برگردانده خواهد شد

قالب کلی دستور العمل فوق به شرح زیر است.

fseek(file,offset,whence)

file : ضروری. فایلی که قرار است چک شود را  مشخص می کند. 

Offset : ضروری. مکان جدید را مشخص می کند(با محاسبه به صورت بایت، از ابتدای فایل مورد نظر).

Whence : اختیاری. اضافه شده در php4. مقادیر امکان پذیر:

  • SEEK_SET - پیش فرض. برابر کردن مکان(position) با offset.
  • SEEK_CUR - ست کردن مکان(position) به مکان جاری بعلاوه ی offset. 
  • SEEK_END  - ست کردن position به EOF بعلاوه ی offset(برای قرار دادن position به قبل از EOFپایان فایل offset باید یک مقدار منفی باشد. 
$file = fopen("test.txt","r");
// read first line
fgets($file);
// move back to beginning of file
fseek($file,0);

تابع stat

تابع stat اطلاعاتی را درباره ی یک فایل برمی گرداند. 

این تابع یک آرایه را برمی گرداند که شامل عناصر زیر است: 

  • [0] یا [dev] - شماره ی دستگاه
  • [1] یا [ino] - شماره Inide
  • [2] یا [mode] - حالت حفاظت Inode
  • [3] یا [nlink] - تعداد لینک ها
  • [4] یا [uid] - آی دی کاربری  مالک 
  • [5] یا [gid] - آی دی Group مالک
  • [6] یا [rdev] - نوع دستگاه Inode
  • [7] یا [size] - اندازه به بایت
  • [8] یا [atime] - آخرین دسترسی مانند برچسب زبان یونیکس
  • [9] یا [mtime] - آخرین تغییر -مانند برچسب زبان یونیکس
  • [10] یا [ctime] - آخرین تغییر inode - مانند برچسب زمان یونیکس
  • [11] یا [blksize] - در صورت پشتیبانی-Blocksize of filesystem IO 
  • [12] یا [blocks] - تعداد block های اختصاص داده شده

قالب کلی دستور العمل فوق به شرح زیر است.

stat(filename)

filename : ضروری. فایلی که قرار است چک شود را  مشخص می کند. 

نکات قابل توجه 

نکته : خروجی این تابع از یک سرور تا سرور دیگر متفاوت است. آرایه ی مورد نظر ممکن است شامل number index یا name index یا هردو باشد. 

نکته : خروجی این تابع در کش ذخیره می شود. برای پاک کردن کش می توانید از تابع ()clearstatcache استفاده کنید. 

مثال :

$stat = stat('test.txt');
echo 'Acces time: ' .$stat['atime'];
echo '<br />Modification time: ' .$stat['mtime'];
echo '<br />Device number: ' .$stat['dev'];

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

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

/@roocketir

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

دیدگاه و پرسش

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

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

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