Cosa intendi con "è sbagliato anche se funziona"???

Il voglio controllare se esiste il file di cache per la pagina che si sta elaborando e se l'invio del file gzip è supportato dal server,quindi:

if ((file_exists($cachefile)) && (strpos($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip') !== false))

il simbolo @ l'ho tolto.. hai perfettamente ragione non vuol dire niente messo li.....
E' proprio per questo genere di errori che volevo fargli dare un'occhiata a chi più esperto.

Forse non capisci cosa vuol fare il mio script perché mi sono spiegato male, ho un file index.php che intercetta tutte le richieste al sito ... fa le sue elaborazioni ... anche decine di query sql... poi con un template engine produce un output html, insomma quello che fanno molti CMS (quello su cui sto facendo i miei esperimenti ora è joomla). Il mio script si inserisce all'inizio per restituire una pagina segià nella cache... e alla fine per scrivere quella pagina nella cache se previsto.

Quindi non mi serve l'else perché in caso di file di cache non esistente è corretto che lo script prosegua e produca la pagina dinamica....
Alla fine dello script aggiungo la mia parte nella quale controllo se voglio mettere in cache la pagina corrente, se si lo faccio e alla prossima richiesta per quella pagina file_exist non sarà più false, se no ... nulla

Ciao