(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
.
Эта функция не возвращает значения после выполнения.
Версия | Описание |
---|---|
5.3.0 |
Добавлены необязательные параметры clear_realpath_cache
и filename .
|
Пример #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