générer pages statiques depuis les pages faites par PHP
chninkel
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
Publicité
Posté le 26-03-2003 à 22:38:35
ethernal
Chercheur de vérité...
Posté le 27-03-2003 à 01:37:09
oui.
Code :
//empêche l'affichage
ob_start();
//donne un nom au fichier
$mon_fichier= 'cache/nom_de_mon_fichier.html';
//teste si le fichier en cache existe
if (file_exists($mon_fichier)){
//permet l'affichage
ob_end_clean();
//affiche la page sauvée
echo implode('',file($mon_fichier));
}
else{
//contenu de la page
echo 'voici ma page';
//sauvegarde la page
$fp= fopen($mon_fichier, 'w+');
$content= ob_get_contents();
//vide le buffer
ob_end_clean();
//écrit dans le fichier
$fwrite($mon_fichier, $content);
fclose($fp);
echo $content;
}
Message édité par ethernal le 27-03-2003 à 01:37:26
---------------
...oups kernel error...
chninkel
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
ethernal
Chercheur de vérité...
Posté le 27-03-2003 à 10:15:15
oui désolé, il se faisait un peu tard
---------------
...oups kernel error...
chninkel
Posté le 27-03-2003 à 15:35:58
c'est peanuts par rapport au service rendu ... merci encore
ethernal
Chercheur de vérité...
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 :
ErrorDocument 404 /index.php
index.php
Code :
//analyse de l'url demandée, imaginons des urls de type /cache/news_20030301.html
include($url[0].'.php'); //attention prob de sécu !!
//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...
chninkel
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
ethernal
Chercheur de vérité...
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...
chninkel
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 )