[script] Mise en cache des pages PHP

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


romane
WRInaute discret
WRInaute discret
 
Messages: 59
Inscription: Lun Avr 04, 2005 18:37

Message le Mar Juin 07, 2005 16:21

ok merci,
donc si je suis bien, si un utilisateur rajoute une photos (par exemple), je suprime l'ancien cache et j'en créer un nouveau?


fandecine
Modérateur
Modérateur
 
Messages: 1640
Inscription: Sam Avr 02, 2005 14:58

Message le Mar Juin 07, 2005 16:24

pas tout a :? fait!

tu suprime le fichier correspondant du cache, le nouveau sera créé automatiquement lors du premier chargemlent de la page! :D


romane
WRInaute discret
WRInaute discret
 
Messages: 59
Inscription: Lun Avr 04, 2005 18:37

Message le Mar Juin 07, 2005 16:59

a ouai!!! donc ca simplifie vachement les choses!!!
mais par exemple j'aurai une adresse du type
http://www.monsite.com/page.php?user=** ... &photo=***

et j'ai juste à mettre la code que tu nous donné pour que ca fonctionne?


romane
WRInaute discret
WRInaute discret
 
Messages: 59
Inscription: Lun Avr 04, 2005 18:37

Message le Mar Juin 07, 2005 17:23

bon je suis aller lire d'autre info pour essayer de comprendre et en gros:
if (je regarde si le cache existe et s'il existe) {
j'affiche le cache
}

else //le cache n'existe pas
{
je sors la page php
}

la structure ressemble-t-elle à ca!!!?


fandecine
Modérateur
Modérateur
 
Messages: 1640
Inscription: Sam Avr 02, 2005 14:58

Message le Mar Juin 07, 2005 17:30

if (je regarde si le cache existe et s'il existe) {
j'affiche le cache
}

else //le cache n'existe pas
{
je sors la page php et je la met en cache
}

Comme ça, c'est mieux! :wink:


romane
WRInaute discret
WRInaute discret
 
Messages: 59
Inscription: Lun Avr 04, 2005 18:37

Message le Mar Juin 07, 2005 17:34

A voui!!! j'avais oublié de remettre le tout de la cache!!! (sacré moi!!!)
Merci beaucoup en tout cas!


kinglouis
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: Mer Mai 19, 2004 13:59

Message le Jeu Juin 09, 2005 14:25

Bonjour ,

J'ai quelques questions bêtes :

1 ) Dans le code donné sur la page d'accueil , il faut juste mettre notre contenu entre les balises [ i ] ?

2 ) Ca va générer un fichier dans le FTP c'est bien ça ?

3 ) Quand on fait une modification on supprime manuellement le fichier créé ?

Merci pour vos réponses


fandecine
Modérateur
Modérateur
 
Messages: 1640
Inscription: Sam Avr 02, 2005 14:58

Message le Jeu Juin 09, 2005 14:49

kinglouis a écrit:Bonjour ,

J'ai quelques questions bêtes :


Une question bien formulée n'est jamais bête! :wink:

kinglouis a écrit:1 ) Dans le code donné sur la page d'accueil , il faut juste mettre notre contenu entre les balises [ i ] ?

Oui
kinglouis a écrit:2 ) Ca va générer un fichier dans le FTP c'est bien ça ?

Le fichier est généré dans le dossier cache
kinglouis a écrit:3 ) Quand on fait une modification on supprime manuellement le fichier créé ?


Tu peux aussi utiliser le script php dont j'ai donné le source plus haut dans ce fils.


kinglouis
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: Mer Mai 19, 2004 13:59

Message le Jeu Juin 09, 2005 17:47

Merci à toi mais

Le fichier est généré dans le dossier cache


Le dossier cache c'est :
_ un truc que l'on créé sur notre serveur
_ un truc sur l'ordi du visiteur

??

Merci


fandecine
Modérateur
Modérateur
 
Messages: 1640
Inscription: Sam Avr 02, 2005 14:58

Message le Jeu Juin 09, 2005 17:51

kinglouis a écrit:Merci à toi mais

Le fichier est généré dans le dossier cache


Le dossier cache c'est :
_ un truc que l'on créé sur notre serveur
_ un truc sur l'ordi du visiteur

??

Merci


Un truc (repertoire) que tu crée sur ton serveur!


kinglouis
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: Mer Mai 19, 2004 13:59

Message le Ven Juin 10, 2005 7:31

Bonjour ,

Alors j'ai essayé :

1 ) J'ai inséré ce code dans une page :
Code: Tout sélectionner
<?PHP
$urldemandee=$_SERVER['REQUEST_URI']; //on lit l'adresse de la page
$urldemandee=ereg_replace('/','-',$urldemandee); // on tranforme l'adresse en nom de fichier
if($urldemandee=="-") $urldemandee="-index.html"; // si l'adresse est la racine du site, on ajoute index.html
$fichierCache="cache/cache".$urldemandee; // on construit le chemin du fichier cache de la page
if (@filemtime($fichierCache)<time()-(3600*24*360)) { //si la page n'existe pas dans le cache ou si elle a expiré
   ob_start(); // on démarre la bufferisation de la page: rien de ce qui suit n'est envoyé au navigateur



echo"lolo";
               
             

   $contenuCache = ob_get_contents(); // on recuperre le contenu du buffer
   ob_end_flush();// on termine la bufferisation
   $fd = fopen("$fichierCache", "w"); // on ouvre le fichier cache
   if ($fd) {
      fwrite($fd,$contenuCache); // on ecrit le contenu du buffer dans le fichier cache
      fclose($fd);
     }
} else { // le fichier cache existe déjà
  include ($fichierCache); // on le copie ici
}
?>

Ce code est dans une page test.php située dans le dossier test

2 ) J'ai créé un dossier cache en lui mettant les droits CHMOD 777 ( pareil pour le dossier ou se trouve le fichier )

3 ) J'execute mon fichier et :
_ le fichier cache-test-test.php est créé
_ il est toutefois vide

Ou est l'erreur ?

Merci


fandecine
Modérateur
Modérateur
 
Messages: 1640
Inscription: Sam Avr 02, 2005 14:58

Message le Ven Juin 10, 2005 7:57

Ajoute echo $contenuCache; juste aprés la ligne ob_end_flush();

Tu doit obtenir:

lolololo lorsque tu affiche ta page test.php.

Si ça marche pas, cela veut dire que la bufferisation ne marche pas. Peut tu me dire quelle version de PHP tu utilise?


kinglouis
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: Mer Mai 19, 2004 13:59

Message le Ven Juin 10, 2005 10:14

Ca marche avec ton code :


Code: Tout sélectionner
<?PHP
$urldemandee=$_SERVER['REQUEST_URI']; //on lit l'adresse de la page
$urldemandee=ereg_replace('/','-',$urldemandee); // on tranforme l'adresse en nom de fichier
if($urldemandee=="-") $urldemandee="-index.html"; // si l'adresse est la racine du site, on ajoute index.html
$fichierCache="cache/cache".$urldemandee; // on construit le chemin du fichier cache de la page
if (@filemtime($fichierCache)<time()-(3600*24*360)) { //si la page n'existe pas dans le cache ou si elle a expiré
   ob_start(); // on démarre la bufferisation de la page: rien de ce qui suit n'est envoyé au navigateur



echo"lolo";
               
             

   $contenuCache = ob_get_contents(); // on recuperre le contenu du buffer
   ob_end_flush();// on termine la bufferisation
   echo $contenuCache;
   $fd = fopen("$fichierCache", "w"); // on ouvre le fichier cache
   if ($fd) {
      fwrite($fd,$contenuCache); // on ecrit le contenu du buffer dans le fichier cache
      fclose($fd);
     }
} else { // le fichier cache existe déjà
  include ($fichierCache); // on le copie ici
}
?>


Merci !

( Version de PHP : PHP Version 4.3.10 )


kinglouis
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: Mer Mai 19, 2004 13:59

Message le Ven Juin 10, 2005 10:17

Euh y a juste un truc , quand je rajoute echo $contenuCache; , la première fois que j'execute ça m'affiche 2 fois le contenu .

C'est que a première fois donc ça va mais y aurait pas une petite astuce pour que ça le fasse pas ?


fandecine
Modérateur
Modérateur
 
Messages: 1640
Inscription: Sam Avr 02, 2005 14:58

Message le Ven Juin 10, 2005 11:01

je t'ais fait faire ce test pour savoir si la bufférisation marchait. Donc elle marche!

Tu peut effacer la ligne que je t'ai fais rajouté. Efface le fichier dans le cache et essaye à nouveau. Si tu as un problème, contacte moi par MP.

[script] Mise en cache des pages PHP [script] Mise en cache des pages PHP

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités