clearstatcache
(PHP 4, PHP 5, PHP 7, PHP 8)
clearstatcache — Очищает кеш состояния файлов
Описание
Обратите внимание, что PHP не кеширует информацию о несуществующих
файлах. Поэтому, если вызывать функцию file_exists()
на несуществующем файле, функция будет возвращать false
до тех пор, пока
вы не создадите этот файл. Если же вы создадите файл, функция будет
возвращать true
, даже если затем вы удалите файл. Однако функция
unlink() очистит этот кеш автоматически.
Замечание:
Эта функция кеширует информацию об отдельных файлах, поэтому
имеет смысл вызывать функцию clearstatcache(),
только если вы совершаете несколько операций с одним и
тем же файлом и не хотите получать кешированную информацию об
этом файле.
Список функций, результаты выполнения которых кешируются:
stat(),
lstat(),
file_exists(),
is_writable(),
is_readable(),
is_executable(),
is_file(),
is_dir(),
is_link(),
filectime(),
fileatime(),
filemtime(),
fileinode(),
filegroup(),
fileowner(),
filesize(),
filetype() и
fileperms().
Список параметров
clear_realpath_cache
-
Нужно ли также очищать кеш realpath.
filename
-
Очистить кеш realpath только для определённого имени файла; используется
только в том случае, если у параметра clear_realpath_cache
установлено значение true
.
Возвращаемые значения
Функция не возвращает значения после выполнения.
Примеры
Пример #1 Пример использования функции clearstatcache()
<?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));
?>
Вывод приведённого примера будет похож на:
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