clearstatcache
funkcja
Czyści wewnętrzną pamięć podręczną wyników stat PHP (rozmiar, czas modyfikacji itp.). Nie zwraca wartości.
clearstatcache(bool $clear_realpath_cache = false, string $filename = ""): void
PHP buforuje wyniki funkcji takich jak file_exists, filesize, filemtime czy is_file, by uniknąć wielokrotnych wywołań systemowych. Gdy plik zmienia się podczas działania skryptu — np. po fwrite lub zewnętrznym procesie — bufor może zwracać nieaktualne dane. clearstatcache czyści ten bufor.
Parametry:
$clear_realpath_cache = true— czyści również buforrealpath(wymagane, gdy zmieniają się dowiązania symboliczne).$filename— jeśli podany, czyści cache tylko dla tego jednego pliku (efektywniejsze niż czyszczenie całości).
<?php
declare(strict_types=1);
$sciezka = __DIR__ . '/log.txt';
file_put_contents($sciezka, 'dane początkowe');
$rozmiar1 = filesize($sciezka);
file_put_contents($sciezka, 'dane po aktualizacji z dłuższą zawartością');
// Bez clearstatcache filesize mogłoby zwrócić starą wartość
clearstatcache(false, $sciezka);
$rozmiar2 = filesize($sciezka);
echo "Rozmiar przed: $rozmiar1 B" . PHP_EOL;
echo "Rozmiar po: $rozmiar2 B" . PHP_EOL;