clearstatcache
(PHP 4, PHP 5, PHP 7)
clearstatcache — Очищает кеш состояния файлов
Описание
$clear_realpath_cache
= false
, string $filename
= ""
) : voidДля обеспечения большей производительности при использовании функций stat(), lstat() или любой другой функции, перечисленных в приведенном ниже списке, PHP кеширует результаты их выполнения. Однако, в некоторых случаях вам может потребоваться очистка этого кеша. Например, когда ваш скрипт несколько раз проверяет состояние одного и того же файла, который может быть изменен или удален во время выполнения скрипта, вы можете захотеть очистить кеш состояния. В этом случае необходимо использовать функцию clearstatcache() для очистки в PHP кешированной информации об указанном файле.
Обратите внимание, что 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 и stat только для определенного файла, используется только если параметр
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