|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Bryan Étudiant Inscription : juillet 2011 Messages : 15 ![]() |
Salut les dév' o/
Ma recherche n'ayant rien donné de pertinent, je me permet de poster mon propre topic. Voilà mon soucis, j'ai créé un formulaire assez long (très long même). Ce formulaire affiche à sa fin un rapport qui rassemble une grande partie des réponses de l'utilisateur ainsi que des calculs effectués avec celles-ci. C'est là que mes problèmes commencent, je cherche à récupérer le code source généré par le fichier "report.php" afin de le stocker dans un fichier .html qui sera dans un dossier "reports" (qu'on créé s'il n'existe pas). Chaque rapport devra avoir son propre fichier afin de pouvoir le consulter en dehors de l'application web. N'ayant absolument jamais touché à la création/lecture/écriture de fichiers, je dois avoué que je suis un peu (complètement?) pommé... Dans le manuel PHP j'ai trouvé la fonction "fflush()" qui pourrait éventuellement m’intéresser mais je ne vois pas comment l'utiliser. Je vous remercie par avance pour votre aide. Cordialement, Sayko. |
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonjour,
as-tu regardé sur cette page ? et notamment : - file_get_contents — Lit tout un fichier dans une chaîne - file_put_contents — Écrit un contenu dans un fichier - mkdir — Crée un dossier - ...
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
00
|
|
|
#3 | ||||
|
Invité de passage
![]() Bryan Étudiant Inscription : juillet 2011 Messages : 15 ![]() |
Bonjour jréaux62,
Tout d'abord merci pour ta réponse rapide. J'avais effectivement regardé le file_get_contents, mais j'avoue ne pas avoir prêté attention aux deux autres (je ne m'étais pas encore penché sur la création de mon dossier (vis-à-vis du mkdir)) Mais le file_get_contents me permettra-t-il de récupérer le code généré pour le client, et non pas celui que j'ai rédigé en php? EDIT: J'ai testé ceci, mais ça ne semble pas fonctionner: Code :
EDIT2: Corrigé! Code :
|
||||
|
|
00
|
|
|
#4 | ||||
![]() ![]() |
Oups !
- file_get_contents() reprend en effet tout le code (le contenu du fichier, code php, ...). Une solution, pour avoir le CODE SOURCE, est la temporisation de sortie avec ob_start() Une petite page "test" pour s'en convaincre : Code :
Code :
Ensuite, il suffit de copier $code_genere dans un fichier.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
||||
|
|
10
|
|
|
#5 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Commence par faire générer le rapport normalement. Une fois que c'est fait, tu place ob_start et ob_end_clean en début et fin de génération HTML, tu réccupère ainsi le buffer de sortie. Ce buffer, tu vas en faire deux choses: le stocker dans un fichier .html et l'afficher.
Voici à quoi ça peut ressembler: Code :
visiblement jreaux m'a devancé
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
10
|
|
|
#6 |
![]() ![]() |
Merci à toi
de confirmer que mon code est juste !Je n'étais pas du tout sûr de moi, vu que je ne l'avais jamais fait ! ... en fait, si, mais il y a très longtemps ...) (Une grosse louche de curiosité, une pincée de recherche dans le manuel php, et une cuillerée de tests : voilà, c'est prêt !)
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Bryan Étudiant Inscription : juillet 2011 Messages : 15 ![]() |
Merci
A présent tout fonctionne parfaitement, au chargement de la page, j'enregistre le fichier html qui contient le code source généré dans un dossier "reports" que je crée s'il n'existe pas. Récapitulatif au cas où cela pourrait aider quelqu'un d'autre: Aux premières lignes du fichier php (ou juste avant le premier echo / première balise html): Tout à la fin du fichier (ou juste après le dernier echo / dernière balise html): Code :
Merci beaucoup à vous deux ! Je passe le topic en résolu. |
||
|
|
00
|
|
|
#8 |
![]() ![]() |
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
00
|
|
|
#9 | |||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Par mesure de sécurité supplémentaire, je te recommande de mettre toute la bufferisation dans un bloc try afin de pouvoir fait ob_end_* en cas d'exception (on est jamais à l'abri). Je l'ai fait comme ça pour Axiom: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|||
|
00
|
|
|
#10 | |
![]() ![]() |
Citation:
"N'oublie pas de nettoyer la cuvette !"
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Bryan Étudiant Inscription : juillet 2011 Messages : 15 ![]() |
Hop, c'est corrigé, merci
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com