Ce face clearstatcache
Funcții ca filesize, filemtime, is_file sau file_exists pot păstra rezultatul în memorie pentru ultimul fișier verificat. Funcțiile PHP care modifică fișiere (unlink, file_put_contents, touch…) golesc singure această memorie.
Ai nevoie de clearstatcache când fișierul este schimbat de altcineva în timp ce scriptul rulează, de exemplu de alt program sau într-o buclă care așteaptă un fișier. Cu primul parametru true golești și memoria căilor rezolvate de realpath.
Parametri
| Parametru | Descriere |
|---|---|
$clear_realpath_cache |
Opțional. true golește și memoria căilor din realpath. |
$filename |
Opțional. Golește doar informațiile pentru acest fișier (are efect doar împreună cu primul parametru). |
Ce returnează
Nimic.
Exemple
Exemplul 1: Așteptarea unui fișier scris de alt program
Programul extern este simulat cu o comandă de shell. clearstatcache asigură că fiecare verificare citește discul.
<?php
file_put_contents("export.csv", "id,nume\n");
exec("printf '1,Ana\\n' >> export.csv");
clearstatcache();
echo filesize("export.csv") . " octeți";
Rezultat
14 octeți
Greșeli frecvente
- Pui
clearstatcache()după fiecare operație cu fișiere. Nu e nevoie: funcțiile PHP care modifică fișierul golesc deja memoria. Folosește-o doar pentru schimbări făcute din afara scriptului.
Comenzi înrudite
filesize: Returnează dimensiunea unui fișier, în octeți.filemtime: Returnează momentul ultimei modificări a unui fișier, ca timestamp.realpath_cache_get: Returnează conținutul memoriei interne în care PHP păstrează căile deja rezolvate.