Salut à tous,
Est-il possible d'enregistrer dans un fichier au format html le résultat d'une page php ?
Si oui, comment ?
Je souhaite que cela se fasse automatiquement via un clic sur un bouton qui ouvre la page que je veux enregistrer sur le server
Discussion :
Salut à tous,
Est-il possible d'enregistrer dans un fichier au format html le résultat d'une page php ?
Si oui, comment ?
Je souhaite que cela se fasse automatiquement via un clic sur un bouton qui ouvre la page que je veux enregistrer sur le server
C'est à dire ?
ce qui est interprété ?
# La rubrique Web
# Javascript / PHP / Flash / (X)HTML / CSS
# Les FAQs
# Les Sources
# Mon profil LinkedIn
oui, ce qui est interprété.
Actuellement, je lance un print() à l'ouverture de la page mais je ne souhaite les imprimer que lorsque j'en ai besoin et ma base de données ou je puise les infos est vidée une fois par an.
Le but est de garder une sauvegarde de chacune des pages.
Je ne sais pas si j'ai été très clair ?
Salut,
tu peux faire ca avec ob_start() et ob_ get_ flush() ou encore mettre toute ta page dans une variable.
Ensuite tu sauvegardes avec fopen().
Bye
Merci pour la réponse (très rapide) mais je ne connais pas du tout
ces fonctions. Pourrais-tu me donner un exemple ?
Ou bien me montrer comment mettre le contenu de la page dans une variable
puis la copier dans un fichier ?
Question subsidiaire :
quelle instruction insérer pour mettre des sauts de pages de manière à ce
que à l'impression du fichier complet (càd comprenant plusieurs pages html)
les sauts de pages soient effectifs ?
Salut,
Sinon avec les fonctions de bufférisation, meilleure solution à mon avis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $page = "<html><body><head><p>rett</p></head></body></html>"; $file = fopen("file.html","w"); fputs($file, $page); fclose($file); // ou PHP 5 //file_put_contents("file.html", $page);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 ob_start(); // en haut de page ... contenu de la page // A l'endroit où tu veux que s'arrête l'enregistrement de ta page, si possible après le </html> si tu veux une page valide $page = ob_get_flush(); $file = fopen("file.html","w"); fputs($file, $page); fclose($file); // ou PHP 5 //file_put_contents("file.txt", $page);
Pour les sauts de page tu peux utiliser les CSS mais je crois que ca ne fonctionne pas sur tous les navigateurs :
page-break-before et page-break-after
Moi je pencherais plutot pour l'option numérot 1...
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $fp = fopen('mon_fichier.html',"w"); fputs($fp, file_get_contents('http://www.monSite.ext/maPage.ext')); fclose($fp);
Après tout dépend d'où se trouve la page... si c'est en local effectivement la bufferisation de sortie est une possibilitée mais je préfère la première solution qui peut être facilement mise en place pour un grand nombre de pages via un tableau et une boucle... .. .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 file_put_contents('mon_fichier.html', file_get_contents('http://www.monSite.ext/maPage.ext'));
Et aussi lire cours et tutoriels PHP.
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 $mesPages = array( 'http://www.monSite.ext/maPage1.ext', 'http://www.monSite.ext/maPage2.ext', 'http://www.monSite.ext/maPage3.ext', ... 'http://www.monSite.ext/maPage10.ext', 'http://www.monSite.ext/maPage11.ext' ); $nbPages = count($mesPages); for($i=0;$i<$nbPages;++$i) { $fp = fopen('repertoire_temporaire/'.basename($mesPages[$i]).'.html',"w"); fputs($fp, file_get_contents($mesPages[$i])); fclose($fp); }
@ tchaOo°
Effectivement ca dépend du contexte, je partais du principe qu'il s'agissait d'une page d'affichage de résultat SQL avec des param passés en get ou post.
Partager