ici 1 heure $DELTA_UPDATE = 60*60; // Noms des fichiers : // => GROG_FCH = fichier contenant les news // => GROG_TMP = fichier temporaire pour récupérer les infos // Attention, il faut que le serveur web puisse écrire sur ces fichiers => droits à paramétrer $GROG_FCH = 'Cache/grog_news.txt'; $GROG_TMP = 'Cache/grog_news_tmp.txt'; // --- Fin des variables de config --- // Y a-t-il eu une erreur ? $erreur = ''; // Test de la date du fichier principal => MAJ seulement si fichier trop vieux if((time() - filemtime($GROG_FCH)) >= $DELTA_UPDATE) { // On signale au fichier qu'il a été modifié : si le GROG rame, le prochain // accès n'essaiera pas de charger les MAJ touch($GROG_FCH); // Ouverture du fichier temporaire en écriture $fp_news = fopen($GROG_TMP, 'w'); // Ramène le truc dans le fichier temporaire $fp = fsockopen($SERVEUR, 80); if(!$fp) { $erreur = 1; } else { fputs($fp,"GET $URL HTTP/1.0\n\n"); // filtrage des headers : le contenu commence après la première ligne vide $apres_header = 0; $res = ''; while (!feof($fp)) { $line = fgets ($fp,1000); // récupère des lignes de 1000 caractères if($apres_header == 1) $res .= $line; if(strcmp($line,"\n") == 0 || strcmp($line,"\r\n") == 0) $apres_header = 1; } fclose($fp); if ($res == "") $erreur = 1; } // Si pas d'erreur : on remplace l'ancien fichier if($erreur == '') { fputs($fp_news, $res); fclose($fp_news); @unlink($GROG_FCH); rename($GROG_TMP, $GROG_FCH); echo (''); // sinon on bute juste le tmp et on touch le fichier pour que le prochain il n'attende pas } else { fclose($fp_news); @unlink($fp_news); echo (''); } } ?>