La mia situazione/obbiettivi sono forse un po' diversi, provo a spiegarti magari puoi darmi una mano:

Voglio implementare uno script che mi permetta di creare una cache staticaper i contenuti di un cms, la voglio per determinate pagine.
Obbiettivo è velocizzare la navigazione sul sito escludendo, per pagine dove non è strettamente necessario, l'elaborazione complessa di uno script che interroga db richiama template etc.

Sono ad un buon punto (con qualche problema e qualche domanda)

Prima dell'elaborazione da parte del cms intercetto la richiesta http e controllo se c'è il "relativo" file statico, questo controllo sarebbe l'unico per pagine nella cache e quindi penso molto veloce:

Codice PHP:
// controllo se esiste la pagina relativa nella cache e se è accettata la codifica
//$cachefile è l'md5 di $_SERVER['REQUEST_URI'] più l'estensione
 
if ((@file_exists($cachefile)) && (strpos($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip') !== false)) {
            
//header ("Content-Type: text/html");
            
header ("Content-Encoding: gzip");
            @
readfile($cachefile);
            exit();
            
//interrompo lo script

 
}
// lo script prosegue con la generazione dinamica del contenuto da parte del cms 

A fine script (mi troverò in questa situazione per richieste elaborate per file non ancora in cache) controllo se quella determinata url è tra quelle che voglio far diventare files statici:

Codice PHP:
//il metodo di questa classe restituisce 1 se la url è tra quelle che voglio mettere in cache

if ($database->loadResult() == '1'){
              
              
              
// genero il file di cache  
              
$fp = @fopen($cachefile'w');    
              
// salvo il contenuto della pagina nel file di cache 
              // lo script del cms in questo momento a prodotto un buffer del contenuto
              
$pageoutput =  ob_get_contents() . "\n";
      
              
////gz se supportato
              
$data gzencode($pageoutput9);
              
//// non gz
              //// $data = $pageoutput;
              
fwrite($fp$data);
              
fclose($fp);
              
        } 
La sostanza dello script è questa... però:

Va bene usare file_exist per cercare nel filesystem o c'è un metodo più efficace?

Lo script è ok o migliorabile?

Grazie per qualsiasi contributo...