Funkce clearstatcache

Funkce clearstatcache vymazává mezipaměť, která uchovává informace o stavu souborů. PHP ukládá do mezipaměti výsledky funkcí pro práci se soubory, jako jsou filesize, filemtime a další. Tato funkce je užitečná, když potřebujete získat aktuální data o souboru, který se mohl změnit během provádění skriptu.

Syntaxe

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

Příklad

Nejjednodušší příklad použití funkce bez parametrů:

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

Výsledek provedení kódu:

php'File cache cleared'

Příklad

Příklad s vymazáním mezipaměti pro konkrétní soubor:

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

Výsledek provedení kódu:

php'Cache cleared for file: test.txt'

Příklad

Praktický příklad se získáním velikosti souboru:

php<?php
  $file = 'data.txt';
  
  // První získání velikosti
  $size1 = filesize($file);
  
  // Změníme soubor (v reálném kódu mohl být soubor změněn jiným procesem)
  file_put_contents($file, 'new content', FILE_APPEND);
  
  // Druhé získání velikosti bez vymazání mezipaměti
  $size2 = filesize($file);
  
  // Vymazání mezipaměti a získání aktuální velikosti
  clearstatcache(true, $file);
  $size3 = filesize($file);
  
  echo "Size1: $size1, Size2: $size2, Size3: $size3";
?>

Výsledek provedení kódu:

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

Viz také

  • funkci file_exists,
    která kontroluje existenci souboru
  • funkci filesize,
    která vrací velikost souboru
  • funkci filemtime,
    která vrací čas změny