générer pages statiques depuis les pages faites par PHP

générer pages statiques depuis les pages faites par PHP - PHP - Programmation

Marsh Posté le 26-03-2003 à 22:38:35    

Bonjour,
 
Je cherche comment générer une page statique HTML identique à la page issue du traitement PHP.
 
exemple :
requete PHP sur base MySQL avec news de Novembre dernier. La page s'affiche sur l'écran du client.
Je voudrais aussi la sauvgarder dans un fichier '.htm' sur le serveur.
 
Possible ?
 
merci
JLC

Reply

Marsh Posté le 26-03-2003 à 22:38:35   

Reply

Marsh Posté le 27-03-2003 à 01:37:09    

oui.

Code :
  1. //empêche l'affichage
  2. ob_start();
  3. //donne un nom au fichier
  4. $mon_fichier= 'cache/nom_de_mon_fichier.html';
  5. //teste si le fichier en cache existe
  6. if (file_exists($mon_fichier)){
  7.   //permet l'affichage
  8.   ob_end_clean();
  9.   //affiche la page sauvée
  10.   echo implode('',file($mon_fichier));
  11. }
  12. else{
  13.   //contenu de la page
  14.   echo 'voici ma page';
  15.   //sauvegarde la page
  16.   $fp= fopen($mon_fichier, 'w+');
  17.   $content= ob_get_contents();
  18.   //vide le buffer
  19.   ob_end_clean();
  20.   //écrit dans le fichier
  21.   $fwrite($mon_fichier, $content);
  22.   fclose($fp);
  23.   echo $content;
  24. }


Message édité par ethernal le 27-03-2003 à 01:37:26

---------------
...oups kernel error...
Reply

Marsh Posté le 27-03-2003 à 09:07:16    

Alors là, excellent  
hourra pour ethernal
merci ça va me débloquer
JLC
 
 
juste petite rectif sur  //écrit dans le fichier
 $fwrite($mon_fichier, $content);
mais
 fwrite($fp, $content);


Message édité par chninkel le 27-03-2003 à 09:12:45
Reply

Marsh Posté le 27-03-2003 à 10:15:15    

oui désolé, il se faisait un peu tard :D


---------------
...oups kernel error...
Reply

Marsh Posté le 27-03-2003 à 15:35:58    

:jap:  
c'est peanuts par rapport au service rendu ...  
merci encore
 :hello:

Reply

Marsh Posté le 27-03-2003 à 23:33:57    

il y a une autre tactique qui ne nécessite plus de traitement php du tout si ça t'intéresse (ça vient d'un tuto sur zend ou phpbuilder je pense)
 
ça consiste à avoir des liens vers des pages html, si la page n'est pas trouvée alors il la génère.
ex :
.htaccess

Code :
  1. ErrorDocument 404 /index.php


 
index.php

Code :
  1. //analyse de l'url demandée, imaginons des urls de type /cache/news_20030301.html
  2. $url= explode('_', basename($HTTP_SERVER_VARS['REQUEST_URI']));
  3. //$url[0]= news ; $url[1]= 20030301 ;
  4. //traitement de la page
  5. include($url[0].'.php'); //attention prob de sécu !!
  6. //sauvegarde dans le fichier (même méthode que le cache précédent) dans /cache/


 
et voila :)


Message édité par ethernal le 27-03-2003 à 23:34:38

---------------
...oups kernel error...
Reply

Marsh Posté le 28-03-2003 à 09:00:36    

La sol que tu m'as indiquée l'autre jour convient parfaitement.
Je vais déjà avancer sur ce que j'ai à faire.
Peut-être plus tard, j'étudierais cette autre façon de faire.
 
Sinon, pendant mes recherches, j'ai plusieurs fois rencontré des trucs sur 'fflush', mais que je n'ai pas réussi à utiliser.
Le fichier créé était toujours vide ...
Tu connais cette fonction ?
 
JMZ

Reply

Marsh Posté le 28-03-2003 à 10:03:13    

jamais utilisée... c'est pour forcer le vidage des buffers, mais à part ça je connais pas.


---------------
...oups kernel error...
Reply

Marsh Posté le 28-03-2003 à 22:45:28    

bonsoir,
 
Pour aller + loin , peut-on 'intercepter' le retour d'un formulaire de requête et le traiter avant affichage ?
 
mon prog PHP fait une requête sur site étranger qui affiche une page en retour.
Puis-je traiter cette page avant son affichage ?
( pour en extraire seulement ce qui mintéresse )
 
JMZ

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed