Aller au contenu

Mise en cache des pages php


sparh

Sujets conseillés

Bonsoir,

mes sites commencent à consommer et ils ralentissent de plus en plus.

Je pense donc mettre ne place un système de mise en cache (pour commencer).

J'ai trouvé un tuto:

http://www.siteduzero.com/tutoriel-3-31906...-cache-php.html

Mon problème:

mon site est calculé en php avant l'affichage, puis j'affiche la page avec des <?php echo ... ; ?>.

Or il y a des endroits qui ne doivent pas être mis en cache: par exemple le menu membre, les publicités etc.

En gros il faudrai que je puisse en mettre en cache le résultats de mes requêtes sql?

Merci d'avance pour votre aide !

Modifié par sparh
Lien vers le commentaire
Partager sur d’autres sites

Tu as des librairies toutes prêtes et efficaces selon tes besoins : pear::cache et pear::cache_lite ou frameworks (zend, ci etc.)

Pour les pubs, si c'est un code js, elle ne seront pas affectées par le cache.

Après tout est une question de paramétrage afin de décider quelles pages tu souhaites placer en cache.

Par ailleurs, de nombreux cms proposent un système de cache, d'origine ou par extension.

Lien vers le commentaire
Partager sur d’autres sites

Pour les zones à regénérer, il te suffit de les mettre dans un javascript comme par exemple la date du jour, la fete du jour ou la pub. Ce sont en plus en général des zones sans intérêt pour le référencement et ainsi tu mets en cache la page complète.

Lien vers le commentaire
Partager sur d’autres sites

Personnellement, je stocke l'intégralité de ma page dans un fichier, puis je cible avec des expressions régulières les zones à regénérer (menus, etc).

Pour info, comment cibles-tu ces zones pour la regénération ? Des commentaires à la syntaxe spécifique ou autre solution?

Lien vers le commentaire
Partager sur d’autres sites

Pour moi c'est des commentaires avec une syntaxe specifique du type :

<ul id="menu_principal">
<!-- BEGIN::MenuPrincipal //-->
<li><a href="#">Accueil</a></li>
<li><a href="#">pg1</a></li>
...
<!-- END::MenuPrincipal //-->
</ul>

Lien vers le commentaire
Partager sur d’autres sites

Faut que le contenu soit relativement simple, comme dans ton exemple.

Si c'est plus complexe, il faut faire effectivement ce que tu préconises (Il serait difficile de cibler de manière fiable des divs imbriqués, par exemple).

Lien vers le commentaire
Partager sur d’autres sites

Posté (modifié)

Ok, je vais opter pour la solution de Captain_Torche.

Le hic, je suis nul en expression régulière.

Donc si j'ai bien compris,

je met tout en cache

je cherche et remplace les parties qui doivent rester dynamique

Dans le cas ci-dessous, tous ce qui est entre <!-- BEGIN::MenuPrincipal //--> et <!-- END::MenuPrincipal //-->

<ul id="menu_principal">
<!-- BEGIN::MenuPrincipal //-->
<li><a href="#">Accueil</a></li>
<li><a href="#">pg1</a></li>
...
<!-- END::MenuPrincipal //-->
</ul>

Pourriez vous m'aider sur l'expression régulière à utiliser pour remplacer tous le contenu entre <!-- BEGIN::MenuPrincipal //--> et <!-- END::MenuPrincipal //-->

Merci d'avance

Modifié par sparh
Lien vers le commentaire
Partager sur d’autres sites

Enfin, la elle est toute simple

$code = '
<ul id="menu_principal">
<!-- BEGIN::MenuPrincipal //-->
<li><a href="#">Accueil</a></li>
<li><a href="#">pg1</a></li>
<!-- END::MenuPrincipal //-->
</ul>';

echo eregi_replace('<!-- BEGIN::MenuPrincipal //-->(.*)?<!-- END::MenuPrincipal //-->', '<!-- BEGIN::MenuPrincipal //--><li>Mon texte remplacé</li><!-- END::MenuPrincipal //-->', $code);

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...