ذخیره سازی داده در حافظه موقت ( cache )
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 7 دقیقه

ذخیره سازی داده در حافظه موقت ( cache )

توابعی که در PHP ، از عمل ذخیره سازی داده در حافظه موقت ( cache ) بهره میگیرند ، عبارتند از :

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 های اختصاص داده شده

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

نکته : خروجی این تابع از یک سرور تا سرور دیگر متفاوت است. آرایه ی مورد نظر ممکن است شامل 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'];

خروجی کد بالا برابر است با :

Access time: 1141633430
Modification time: 1141298003
Device number: 0

lstat

تابع ()lstat اطلاعاتی را درباره ی یک فایل یا یک لینک سمبلیک برمی گرداند. این تابع یک آرایه را با عناصر زیر برمی گرداند: 

[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 های اختصاص داده شده

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

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

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

نکته : این تابع شبیه تابع ()stat می باشد با این تفاوت که اگر پارامتر file یک لینک سمبلیک باشد، وضعیت symlink برگردانده خواهد شد  . not the status of the file pointed to by the symlink

مثال

print_r(lstat("test.txt"));

خروجی کد بالا برابر است با

Array
(
[0] => 0
[1] => 0
[2] => 33206
[3] => 1
[4] => 0
[5] => 0
[6] => 0
[7] => 92
[8] => 1141633430
[9] => 1141298003
[10] => 1138609592
[11] => -1
[12] => -1
[dev] => 0
[ino] => 0
[mode] => 33206
[nlink] => 1
[uid] => 0
[gid] => 0
[rdev] => 0
[size] => 92
[atime] => 1141633430
[mtime] => 1141298003
[ctime] => 1138609592
[blksize] => -1
[blocks] => -1
)

file_exists

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

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

is_writable

تابع is_writable بررسی می کند که آیا فایل مورد نظر قابل نوشتن است یا نه. 

در صورتی که فایل مورد نظر قابل نوشتن باشد، این تابع TRUE را برمی گرداند. 

is_readable

تابع is_readable بررسی می کند که آیا فایل مشخص شده قابل خواندن است یا نه. 

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

is_executable

تابع is_readable بررسی می کند که آیا فایل مشخص شده قابل خواندن است یا نه. 

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

 is_file

تابع is_file بررسی می کند که آیا یک فایل مشخص، یک فایل حقیقی است یا نه. 

در صورتی که فایل مورد نظر یک فایل حقیقی باشد، true برگردانده خواهد شد. 

 is_dir

تابع is_dir  بررسی می کند که آیا فایل مشخص شده یک دایرکتوری است یا نه. 

در صورتی که دایرکتوری مورد نظر وجود داشته باشد TRUE را برمی گرداند. 

 is_link

تابع is_link بررسی می کند که آیا فایل مشخص شده یک لینک است یا نه. 

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

filectime

تابع filectime آخرین زمانی که یک فایل مشخص مورد تغییر واقع شده است را برمی گرداند. این تابع تغییرات inore را به خوبی مانند تغییرات منظم بررسی می کند. تغییرات Inore به هنگام premission ها و owner و group و دیگر متادیتاها تغییر می کند. 

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

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

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

نکته : برای برگرداندن آخرین زمانی که محتوای یک فایل تغییر کرده است، از تابع filemtime() استفاده کنید. 

 fileatime

تابع fileatime() زمان آخرین دسترسی به یک فایل مشخص را برمی گرداند.  این تابع در صورت موفقیت، زمان آخرین دسترسی را مثل یک برچسب زمانی یونیکس برمی گرداند. و در صورت شکست FALSE را برمی گرداند.

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

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

نکته: بعضی سیستم های یونیکس زمان دسترسی آپدیت را غیر فعا کرده اند، زیرا این تابع برای اپلیکیشن هایی که به طور مستقیم به تعداد زیادی از فایل ها دسترسی دارند عملکرد(performance) را کاهش می دهند. 

filemtime

تابع filemtime آخرین زمانی که محتوای فایل مورد نظر تغییر کرده است را برمی گرداند. این تابع در صورت موفقیت، آخرین زمان تغییر را بعنوان یک برچسب زمان یونیکس برمی گرداند و در غیر این صورت، FALSE برگردانده خواهد شد. 

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

fileinode

تابع fileinode مقدار inode از یک فایل مورد نظر را برمی گرداند. در صورت موفقیت، این تابع عدد inode را از یک فایل مورد نظر برمی گرداند و در غیر این صورت FALSE برگردانده خواهد شد. 

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

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

نکته: این تابع نتیجه ی معناداری را در سیستم های ویندوز تولید نمی کند. 

filegroup

تابع filegroup از یک فایل مورد نظر، group ID را برمی گرداند. این تابع در صورت موفقیت، group ID را برمی گرداند . در صورت شکست FALSE برگردانده خواهد شد. 

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

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

نکته : این تابع در سیستم های ویندوز، نتایج معنی داری را تولید نمی کند. 

نکته : برای تبدیل group ID به group name از ()posix_getgrid استفاده کنید

fileowner 

تابع fileowner درواقع مالک را  از یک فایل مشخص برمی گرداند. در صورت موفقیت، این تابع uset ID را برمی گرداند و در صورت شکست، FALSE برگردانده خواهد شد. 

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

نکته : این تابع در سیستم های ویندوز، نتیجه ی معنا داری را تولید نمی کند. 

نکته : برای تبدیل user ID به user name از ()posix_getpwuid استفاده نمایید. 

filesize

تابع ftruncate یک فایل باز شده را به یک طول مشخص کوتاه می کند. 

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

filetype

تابع ()filetype نوع فایل را از یک فایل یا دایرکتوری مشخص برمی گرداند. این تابع در صورت موفقیت، یکی از هفت مقدار امکان پذیر را برمی گرداند. و در صورت شکست FALSE برگردانده خواهد شد. مقادیر برگشتی امکان پذیر:

fifo

char

dir

block

link

file

unknown

 fileperms

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

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

تابع clearstatcache 

میزان حافظه موقتی که سیستم به یک فایل اختصاص داده ( حافظه cache ) را آزاد می کند . 

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

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

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

/@roocketir

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

دیدگاه و پرسش

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

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

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