IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Gérer la mise en cache d'un fichier XML


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 94
    Par défaut Gérer la mise en cache d'un fichier XML
    Bonjour,

    J'ai sur mon site un générateur de flux RSS/ATOM (PHP4) qui fonctionne très bien, vu le succès et pour éviter de sur solliciter le processeur du serveur je souhaite mettre en cache le résultat de chaqu'une des requêtes (pas mal de paramètres sont possible) et si jamais la même requête est joué dans l'heure qui suit plutôt que de régénérer le flux le script doit aller chercher le fichier XML qui correspond et l'afficher.

    Voici ce que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    $toto = $_SERVER['REQUEST_URI'];
    $filename = "../xml/extern_".$toto.".xml"; // nom du fichier XML
     
    if (file_exists($filename))
    {
    	if (time() - filemtime($filename) < 100) 
    	{
    		include $filename;
    		exit; //on sort
    	}
    	else
    		unlink($filename); 	//si fichier trop vieux on l'efface 
    }
     
    ... // génération du fichier XML puis affichage

    l'Include ne fonctionne pas ce qui est un peu normal, mais le pb c'est que je ne sais pas comment faire autrement ...

    Je suis loin d'être un expert, mais peut-être existe t'il une autre méthode pour mettre en cache des flux ?

    Je précise que je souhaite que l'url affiché soit bien l'adresse du script PHP et non pas l'adresse du fichier XML.


    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 94
    Par défaut
    bon j'ai trouvé

    avec les headers pour que les flux restent conforme !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    if (file_exists($filename))
    {
    	if (time() - filemtime($filename) < 100) 
    	{
    		$handle = fopen($filename, "r");
    		if ($handle)
    		{
    			header('Content-Type: text/xml');
    			header('Expires: '.gmdate('D, d M Y H:i:s').' GMT');
    			header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    			header('Pragma: public');
    			while (!feof($handle))
    			{
    				$buffer = fgets($handle, 4096);
    				echo $buffer;
    			}
    			fclose($handle);
    		}
    		exit;
    	}
    	else
    		unlink($filename); 	//si fichier trop vieux on l'efface 
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD18] Garder la mise en forme d'un fichier XML
    Par jacquesprogram dans le forum WinDev
    Réponses: 11
    Dernier message: 17/09/2013, 15h21
  2. [PHP 5.3] Gérer les droits des utilisateurs : MySQL ou fichier XML
    Par ChriGoLioNaDor dans le forum Langage
    Réponses: 1
    Dernier message: 04/01/2010, 10h29
  3. Mise en cache de fichiers html php et css
    Par 12monkeys dans le forum Balisage (X)HTML et validation W3C
    Réponses: 29
    Dernier message: 06/07/2007, 09h51
  4. empecher la mise en cache d'un fichier flash
    Par enzo21 dans le forum Flash
    Réponses: 10
    Dernier message: 27/09/2006, 19h17
  5. [HTML] Pas de mise en cache pour une playlist xml d'un swf
    Par Lock622 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 13/08/2006, 15h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo