mirsite

      главная страница     письмо     Добавить в избранное

    PHP // MySQL // .htaccess


   Об авторе >>>



Главная страница

PHP

     Статьи

     Функции

       Строки

       Массивы

       Файлы и файловая система

       Работа с сетью

       Дата и время

       Специальные

       Регулярные выражения (POSIX)

     Книги

MySQL

Apache и .htaccess

Полезные сервисы

Новости

Ссылки

Карта сайта



Файлы и файловая система



clearstatcache

PHP 3, PHP 4, PHP 5

void clearstatcache ( void )

При работе с файлами PHP кеширует результаты выполнения многих функций для обеспечения большей производительности. Когда ваш скрипт несколько раз проверяет состояние одного и того же файла, результаты первой проверки кэшируются и в последующих случаях берутся из кэша.

Точнее, PHP кэширует информацию только о существующих файлах. Если вы вызовите file_exists() на несуществующем файле, она будет возвращать FALSE до тех пор, пока файл не будет создан. Но если файл существует, то file_exists() будет возвращать TRUE даже когда вы его удалите.

<?php
// работаем с файлом
$f fopen ("test.txt""w");
fwrite ($f"test");
fclose ($f);

echo (int) 
file_exists("test.txt"); 
// выведет 1, все верно, файл есть

unlink ("c:\\test.txt"); // удаляем файл

echo (int) file_exists ("test.txt");
// все равно выведет 1, хотя файла уже нет

clearstatcache(); // очищаем кэш
 
echo (int) file_exists ("test.txt");
// выведет 0

?>


Для борьбы с этой ситуацией используется функция clearstatcache(). В примере показано, что может произойти без ее использования и как можно избежать ошибки.

Ниже приведен список функций, результаты работы которых кешируются PHP. Если по логике работы программы этого необходимо избежать, используйте после их вызова функцию 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().


Все функции раздела >>>




  

Александр Мироненко, MirSite.ru © 2005-2014       
Сайт обновлен 21 сентябр¤ 2019 года