Bonjour,
J'ai une page php qui prend un paramètre et qui génère quelque chose (selon le paramètre), est-il possible - qu'à la fin de la page - de récupérer le code HTML généré ? c-a-d que la page va stoquer ce qu'elle a généré dans un fichier ?
Bonjour,
J'ai une page php qui prend un paramètre et qui génère quelque chose (selon le paramètre), est-il possible - qu'à la fin de la page - de récupérer le code HTML généré ? c-a-d que la page va stoquer ce qu'elle a généré dans un fichier ?
Salut,
Tout est possible enfin presque.
Cela dépend de quelle façon tu génères ta page.
Soit tu stockes le tout dans une variable et tu l'enregistres dans un fichier avant de faire un echo de la variable.
ou alors tu peux passer par le buffer de sortie. plus d'infos ici : http://fr.php.net/manual/fr/ref.outcontrol.php
non je ne stoke rien dans aucune variable, dison par exemple que j'ai une page comme celle que tu es entrain de lire, c-a-d qui fais des requetes et des traitement pour t'afficher la page que t'es entrain de lire, et ce que je veux c'est récupérer le code HTML de cette page dans une variable (ou n'importe où)
quand tu generes une page html, tu fais des "echo" ou des "print" ? he bien au lieu de faire des echo ou des print, tu affecte ton code html dans une variable ($html, par exemple)
et tu l'affiches ou l'enregistres a la fin du script..
echo $html;
ou file_put_contents... ou que sais-je selon tes besoins !
le code suivant n'a pas maché :
je devrait avoir Hello 2 fois, mais c'est pas le cas !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <? ob_start(); print("Hello"); ob_end_flush(); $s = ob_get_contents(); print $s; ?>
non avec ce code tu n'auras qu'une seule fois Hello
Par contre, si tu avais regardé un peu la doc de ob_get_contents tu aurais vu qu'il faut l'appeler avant ob_end_flush car celui-ci détruit le buffer
Pierre
le pb c'est que dans ma page je vais générer des données complexe, des tables imbriqués, des styles, des images...en fait je n'utilise pas des echo mais quand je veux afficher un truc je le met entre ?> et <?Envoyé par zevince
Salut
Lis attentivement les remarques de FCYPBA, il me semble être de très bon conseil.
Pensez à utiliser de préférence les tags longs, question de portabilité.
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
ça marche merci
comment faire pour ne plus afficher ce qui est entre ob_start et ob_flush ? j'ai lu quelque part qu'il fallait modifier php.ini mais là où je vais utiliser le script, je n'ai pas accès au php.ini !!
c'est bon j'ai trouvé :
utiliser ob_end_clean() à la place de ob_end_flush()
En regardant la doc tu aurais vu la fonction qu'il te faut![]()
Edit : Ne pas tenir compte de ce message![]()
Pierre
PS : Ah les fins de semaine c'est bon
Partager