Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Caching di pagine web

  1. #1

    Caching di pagine web

    Salve,
    ho trovato un articolo su come realizzare il caching di pagine web per evitare di sovraccarica il database con continue interrogazioni.
    Il metodo si sviluppa su due differenti file:

    controlla_cache.php
    Codice PHP:
    <?php
    // Percorso della cartella in cui salvare i file temporanei
    $cachedir '/cache/'

    // Durata massima (in minuti) delle pagine in cache
    $time 30

    // Pagine da NON salvare in cache
    $no_cache = array(
      
    'mrwebmaster.it/rss.php',
      
    'mrwebmaster.it/cerca.php'
    );

    // variabile interna di controllo
    $no_pagina false;

    // Recupero la URL completa della pagina corrente
    $pagina 'http://' $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 

    // costruisco il percorso fisico del file temporaneo
    $cachefile $cachedir md5($pagina) . '.html'

    // Verifico che la pagina corrente non sia tra quelle da NON salvare in cache
    for ($i 0$i count($no_cache); $i++)
    {
      
    // Se la pagina corrente è tra quelle da escludere la variabile
      // $no_pagina viene impostata come true (bloccando il sistema di caching)
      
    if (strpos($pagina$no_cache[$i]) !== false$no_pagina true;
    }

    // Se esiste il file di cache per la pagina corrente (e questa non è tra quelle escluse)
    // verifico qual'è il time di creazione e lo memorizzo nella variabile $cache_created
    $cache_created = ((file_exists($cachefile)) && ($no_pagina === false)) ? filemtime($cachefile) : 0;

    // Verifico che la pagina temporanea non sia scaduta
    if ((time() - ($time 60)) < $cache_created)
    {
      
    // se la pagina in cache non è troppo vecchia la leggo ed interrompo l'esecuzione dello script
      
    readfile($cachefile);
      exit();
    }

    ob_start();
    ?>
    scrivi_cache.php
    Codice PHP:
    <?php
    if ($no_pagina === false)
    {
      
    // apriamo il file della cache in scrittura
      
    $file fopen($cachefile'w');

      
    // salviamo il contenuto dell'output buffer nel file
      
    fwrite($fileob_get_contents());

      
    // chiudiamo il file
      
    fclose($file);
    }
    // inviamo l'output al browser
    ob_end_flush();
    ?>
    Ho completato (come da istruzioni) caricando i due file sul serverr ed inserendo all'inizio del codice html della pagina:
    Codice PHP:
    <?php
    include("controlla_cache.php");
    ?>
    ...ed alla fine del codice html della pagina:
    Codice PHP:
    <?php
    include("scrivi_cache.php");
    ?>
    Ho creato sul server la cartella cache ...
    ed aprendo la pagina web mi segnala un errore in riga 5 di scrivi_cache.php .

    Dove può essere l'errore?
    Magari esiste un metodo alternativo per il caching?

    Grazie

  2. #2
    prova a fare così

    Codice PHP:
    $cachedir './cache/'
    oppure

    Codice PHP:
    $cachedir 'http://www.tuosito.ext/cache/'

  3. #3
    Grazie mille funziona così:
    Codice PHP:
    $cachedir './cache/'

  4. #4
    bisognava solo specificare il percorso esatto



  5. #5
    Scusate ancora; due altre domande:

    -La durata massima (in minuti) delle pagine in cache inserita nella direttiva...
    Codice PHP:
    // Durata massima (in minuti) delle pagine in cache 
    $time 30
    ...fino a quale limite (in minuti) si può estendere? Per esempio potrei impostare come linite...
    Codice PHP:
    // Durata massima (in minuti) delle pagine in cache 
    $time 1440
    ... e cioè un giorno?

    -Secnda domanda: per ottenere in caching di tutto il sito (senza dover modificare tutte le pagine), ci sarebbe un modo per richiamare il caching utilizzando il file .htaccess ?

    Grazie

  6. #6
    per il time si lo puoi fare...mentre per quanto riguarda htaccess nn saperei...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.