Функция clearstatcache

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

Синтаксис

phpclearstatcache([bool $clear_realpath_cache = false], [string $filename = null]);

Пример

Простейший пример использования функции без параметров:

php<?php
  clearstatcache();
  echo 'File cache cleared';
?>

Результат выполнения кода:

php'File cache cleared'

Пример

Пример с очисткой кеша для конкретного файла:

php<?php
  $file = 'test.txt';
  clearstatcache(true, $file);
  echo 'Cache cleared for file: ' . $file;
?>

Результат выполнения кода:

php'Cache cleared for file: test.txt'

Пример

Практический пример с получением размера файла:

php<?php
  $file = 'data.txt';
  
  // Первое получение размера
  $size1 = filesize($file);
  
  // Изменяем файл (в реальном коде файл мог быть изменен другим процессом)
  file_put_contents($file, 'new content', FILE_APPEND);
  
  // Второе получение размера без очистки кеша
  $size2 = filesize($file);
  
  // Очищаем кеш и получаем актуальный размер
  clearstatcache(true, $file);
  $size3 = filesize($file);
  
  echo "Size1: $size1, Size2: $size2, Size3: $size3";
?>

Результат выполнения кода:

php'Size1: 10, Size2: 10, Size3: 20'

Смотрите также

  • функцию file_exists,
    которая проверяет существование файла
  • функцию filesize,
    которая возвращает размер файла
  • функцию filemtime,
    которая возвращает время изменения