clearstatcache
(PHP 4, PHP 5, PHP 7, PHP 8)
clearstatcache — Clears file status cache
Description
You should also note that PHP doesn't cache information about non-existent
files. So, if you call file_exists() on a file that
doesn't exist, it will return false until you create the file. If you
create the file, it will return true even if you then delete the file.
However unlink() clears the cache automatically.
Note:
This function caches information about specific filenames, so you only
need to call clearstatcache() if you are performing
multiple operations on the same filename and require the information
about that particular file to not be cached.
Affected functions include stat(),
lstat(),
file_exists(),
is_writable(),
is_readable(),
is_executable(),
is_file(),
is_dir(),
is_link(),
filectime(),
fileatime(),
filemtime(),
fileinode(),
filegroup(),
fileowner(),
filesize(),
filetype(), and
fileperms().
Parameters
clear_realpath_cache
-
Whether to also clear the realpath cache.
filename
-
Clear the realpath cache for a specific filename only; only
used if clear_realpath_cache is true.
Return Values
No value is returned.
Examples
Example #1 clearstatcache() example
<?php
$file = 'output_log.txt';
function get_owner($file)
{
$stat = stat($file);
$user = posix_getpwuid($stat['uid']);
return $user['name'];
}
$format = "UID @ %s: %s\n";
printf($format, date('r'), get_owner($file));
chown($file, 'ross');
printf($format, date('r'), get_owner($file));
clearstatcache();
printf($format, date('r'), get_owner($file));
?>
The above example will output
something similar to:
UID @ Sun, 12 Oct 2008 20:48:28 +0100: root
UID @ Sun, 12 Oct 2008 20:48:28 +0100: root
UID @ Sun, 12 Oct 2008 20:48:28 +0100: ross