function get_threads($Y, $M) { // charge les fils de discussion d'apres le cache // ou le (ré)génère si besoin. global $serveur_listes, $liste, $fichier_cache_prefix; global $thread_sujet, $thread_de, $thread_date; $now = time(); $mois_en_cours = strftime("%m", $now); // mois consulté : $M $fichier_cache = sprintf("{$fichier_cache_prefix}%04d%02d.cache", $Y, $M); // format : archives-ml_200207.cache pour juillet 2002 // cas où on va générer le cache if (!file_exists($fichier_cache) || !filesize($fichier_cache) || $M < $mois_en_cours && strftime("%m", filemtime($fichier_cache)) == $M || $M == $mois_en_cours && $now - filemtime($fichier_cache) > 3600) { // alors on génère le cache $page = file("http://{$serveur_listes}?L={$liste}&Y={$Y}&M={$M}"); if ($page) { $page = explode("\n", unmime(join("", $page))); // violent, mais nécessaire ;) $page = preg_replace("/^\t\t\t/m", "", $page); $fpcache = fopen($fichier_cache, "w"); if (flock($fpcache, 2)) { fwrite($fpcache, "<? // fichier cache généré, ne pas modifier\n\n"); for ($i = 16; $i < count($page); $i += 12) { $sujet = $page[$i + 3]; $de = $page[$i + 6]; $date = $page[$i + 9]; if ($sujet) { preg_match("/\\&L\\=([^\"]*?)\"/", $sujet, $m); list($sujet_post, ) = get_post($m[1]); $sujet_thread = my_trim($sujet_post); $thread_sujet[$sujet_thread][] = $sujet; $thread_de[$sujet_thread][] = $de; $thread_date[$sujet_thread][] = $date; fwrite($fpcache, '$thread_sujet["' . addslashes($sujet_thread) . '"][]="' . addslashes($sujet) . "\";\n"); fwrite($fpcache, '$thread_de["' . addslashes($sujet_thread) . '"][]="' . addslashes($de) . "\";\n"); fwrite($fpcache, '$thread_date["' . addslashes($sujet_thread) . '"][]="' . addslashes($date) . "\";\n\n"); } } fwrite($fpcache, "?>"); fclose($fpcache); } else { // on n'a pas eu le lock //BUG: on fait quoi ? echo "<p>1:Impossible de charger la page !</p>"; } } else { // on n'a pas eu la page http://$serveur?$path //BUG: on fait quoi ? echo "<p>2:Impossible de charger la page !</p>"; } } else { // sinon on utilise le cache include $fichier_cache; } }
<!doctype html> <html lang="en" itemscope itemtype="http://schema.org/Article"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <meta name="generator" content="Anchor CMS"> <title><?php echo my_trim(page_title('Page can’t be found'), site_name(), 65); ?> </title> <meta name="description" content="<?php echo my_get_description(154); ?> "> <link href='https://fonts.googleapis.com/css?family=Lato:400,100,100italic,300,300italic,400italic,700,700italic,900,900italic' rel='stylesheet' type='text/css'> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"> <link rel="stylesheet" href="<?php echo theme_url('/css/reset.css'); ?> "> <link rel="stylesheet" href="<?php echo theme_url('/css/style.css'); ?> "> <link rel="stylesheet" href="<?php echo theme_url('/css/small.css'); ?> " media="(max-width: 400px)">