array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.wincache-refresh-if-changed.php', 1 => 'wincache_refresh_if_changed', ), 'up' => array ( 0 => 'ref.wincache.php', 1 => 'Функции WinCache', ), 'prev' => array ( 0 => 'function.wincache-ocache-meminfo.php', 1 => 'wincache_ocache_meminfo', ), 'next' => array ( 0 => 'function.wincache-rplist-fileinfo.php', 1 => 'wincache_rplist_fileinfo', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/wincache/functions/wincache-refresh-if-changed.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PECL wincache >= 1.0.0)
wincache_refresh_if_changed — Обновляет записи кеша для закешированных файлов
Обновляет записи кеша для файлов, имена которых были переданы во входном аргументе. Если аргумент не указан, обновляются все записи в кеше.
files
Массив имён файлов, которые необходимо обновить. Могут использоваться абсолютные или относительные пути к файлам.
Возвращает true
в случае успешного выполнения или false
, если возникла ошибка.
WinCache выполняет регулярные проверки закешированных файлов, чтобы гарантировать, что если какой-либо файл был изменён, то соответствующая запись в кеше будет обновлена. По умолчанию эта проверка выполняется каждые 30 секунд. Если, например, PHP-скрипт обновляет другой PHP-скрипт, в котором хранятся параметры конфигурации приложения, то может случиться так, что после сохранения параметров конфигурации в файл приложение по-прежнему будет использовать старые параметры в течение некоторого времени, пока не будет обновлён кеш. В таких случаях может быть предпочтительнее обновить кеш сразу после изменения файла. В следующем примере показано, как это можно сделать.
Пример #1 Пример использования wincache_refresh_if_changed()
<?php
$filename = 'C:\inetpub\wwwroot\config.php';
$handle = fopen($filename, 'w+');
if ($handle === FALSE) die('Failed to open file '.$filename.' for writing');
fwrite($handle, '<?php $setting=something; ?>');
fclose($handle);
wincache_refresh_if_changed(array($filename));
?>