PDA

View Full Version : [PHP] Esistenza file


pacionet
07-05-2006, 20:03
Ho questo script (su un web server) che controlla se un file esiste:


<?php
clearstatcache();
$exist = file_exists("file.txt");

if ($exist == FALSE)
echo "NON ESISTE !";
else
echo "ESISTE";
?>

Se il file esiste ritorna correttamente "ESISTE". Se poi cancello a mano il file e reinserisco nella barra degli indirizzi l'indirizzo dello script , lo script continua a tornare "ESISTE", invece che "NON ESISTE !".
Se invece faccio il refresh della pagina dal browser torna correttamente "NON ESISTE !"

Pensavo che clearstatcache() fosse sufficiente, invece non funziona.

Qualcuno mi può aiutare ?

kk3z
07-05-2006, 21:00
Sarà che usa la cache, mentre quando fai "aggiorna" il browser aggiorna la cache richiedendo di nuovo il file php. Devi fare per forza "aggiorna".

Xalexalex
07-05-2006, 21:08
Non penso sia un problema dello script ma del browser che utilizzi. Mozilla o Iex?

andbin
07-05-2006, 21:16
Ho questo script (su un web server) che controlla se un file esiste:


<?php
clearstatcache();
$exist = file_exists("file.txt");

if ($exist == FALSE)
echo "NON ESISTE !";
else
echo "ESISTE";
?>

Se il file esiste ritorna correttamente "ESISTE". Se poi cancello a mano il file e reinserisco nella barra degli indirizzi l'indirizzo dello script , lo script continua a tornare "ESISTE", invece che "NON ESISTE !".
Se invece faccio il refresh della pagina dal browser torna correttamente "NON ESISTE !"

Pensavo che clearstatcache() fosse sufficiente, invece non funziona.Ci sono 2 cose da tenere presente:
- se stai usando IE ..... è normale! Prova con un altro browser più serio (es. Firefox) e vedrai che reinserendo l'indirizzo (+ invio ovviamente), funziona correttamente.
- clearstatcache() non serve nemmeno, messo così all'inizio dello script. I valori nella cache esistono e perdurano soltanto per la singola request. Quindi all'inizio dello script la cache è sicuramente vuota. ;)

Precisazione: clearstatcache() serve quindi solo se un file viene "esaminato" più volte durante l'esecuzione di uno script.