IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

une page php qui enregistre son propre contenu


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    751
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 751
    Points : 371
    Points
    371
    Par défaut une page php qui enregistre son propre contenu
    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 ?
    '...parfois l'informatique peut vous rendre fou...'

  2. #2
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    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
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  3. #3
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    751
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 751
    Points : 371
    Points
    371
    Par défaut
    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ù)
    '...parfois l'informatique peut vous rendre fou...'

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    489
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 489
    Points : 388
    Points
    388
    Par défaut
    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 !

  5. #5
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    751
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 751
    Points : 371
    Points
    371
    Par défaut
    le code suivant n'a pas maché :
    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;
    ?>
    je devrait avoir Hello 2 fois, mais c'est pas le cas !!!
    '...parfois l'informatique peut vous rendre fou...'

  6. #6
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    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
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  7. #7
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    751
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 751
    Points : 371
    Points
    371
    Par défaut
    Citation Envoyé par zevince
    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 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 <?
    '...parfois l'informatique peut vous rendre fou...'

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    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é.

  9. #9
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    751
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 751
    Points : 371
    Points
    371
    Par défaut
    ç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 !!
    '...parfois l'informatique peut vous rendre fou...'

  10. #10
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    751
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 751
    Points : 371
    Points
    371
    Par défaut
    c'est bon j'ai trouvé :
    utiliser ob_end_clean() à la place de ob_end_flush()
    '...parfois l'informatique peut vous rendre fou...'

  11. #11
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    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
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Compter dans une page php les enregistrements
    Par pasbonte dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/02/2009, 21h09
  2. Réponses: 4
    Dernier message: 14/12/2008, 10h14
  3. Réponses: 8
    Dernier message: 04/07/2007, 12h51
  4. Récupérer le contenu d'une page PHP
    Par Pragmateek dans le forum Réseau
    Réponses: 37
    Dernier message: 28/05/2006, 22h00
  5. Boutons Radios qui charge une page php différente
    Par nebule dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/11/2004, 15h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo