PHP
downloads | documentation | faq | getting help | mailing lists | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

copy> <chown
Last updated: Sun, 25 Nov 2007

view this page in

clearstatcache

(PHP 4, PHP 5)

clearstatcache — Vymaže cache obsahujúcu stav súborov

Popis

void clearstatcache ( void )

Pri používaní stat(), lstat(), či ďalších funkcií v doleuvedenom zozname PHP ukladá návratové hodnoty týchto funkcií do cache (vyrovnávacej pamäte), čím je zaistený lepší výkon. Napríklad, ak je nejaký súbor kontrolovaný v tom istom skripte viackrát a počas vykonávania tejto funkcie môže byť tento súbor súbor nejakým spôsobom zmenený alebo odstránený, je vhodné vymazať stavovú cache. V týchto prípadoch treba použiť funkciu clearstatcache() na vymazanie informácií o tomto súbore v pamäti cache.

Note: Táto funkcia si ukladá informácie o niektorých súboroch do cache pamäte, preto je potrebné zavolať clearstatcache(), ak je vykonávaných viacero operácií na rovnakom súbore a nie je vhodné aby bola informácia o tomto súbore ukladaná v pamäti cache.

Zoznam funkcií, ktorých výsledky môžu byť cacheované: stat(), lstat(), file_exists(), is_writable(), is_readable(), is_executable(), is_file(), is_dir(), is_link(), filectime(), fileatime(), filemtime(), fileinode(), filegroup(), fileowner(), filesize(), filetype() a fileperms().



copy> <chown
Last updated: Sun, 25 Nov 2007
 
add a note add a note User Contributed Notes
clearstatcache
Anonymous
26-Sep-2008 05:49
re stangelanda at gmail dot com
I have tested this on Windows XP SP3, PHP Version 5.2.5 and I got a warning:

filesize() stat failed for $filename on the second call to the filesize() function

ie it worked as I would expect so unless the bug has been introduced since then - no bug.
BlueCamel
06-Aug-2008 06:58
Regarding the previous user note, the docs say that calling unlink() for a file will clear any stats cache for that file. If you're seeing the described windows behavior it sounds like a possible PHP bug or doc bug.
stangelanda at gmail dot com
24-Jan-2008 12:35
It should be noted that a call to any of those functions will cache all of the file's information, not just the information that is returned.

Obviously it is clear that the following requires you to clear the cache.
<?php
    $size1
= filesize($filename);
   
unlink($filename);   
   
$size2 = filesize($filename);
   
// $size2 still equals $size1, unless you cleared the stat cache in between.
?>

<?php
    $access
= fileatime($filename);
   
unlink($filename);   
   
$size = filesize($filename);
   
// $size will be the filesize before it was unlinked, because the filesize was cached when fileatime was called, even though the two functions wouldn't appear to have anything to do with either other.
?>

Confirmed on a windows system.

copy> <chown
Last updated: Sun, 25 Nov 2007
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites