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 :

Stocker dans une variable le html produit par un fichier inclu ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    lr
    lr est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 338
    Par défaut Stocker dans une variable le html produit par un fichier inclu ?
    Salut,

    Je suis en train d'essayer d'optimiser une application. Je précise tout de suite qu'elle est vieille, très mal codée et qu'il est exclu que j'entreprenne de gros travaux dessus.

    Dans une page, un formulaire permet de saisir des critères, ce qui rafraichit une liste de résultats. Le problème, c'est que ce formulaire met 9 secondes à se générer (je sais, c'est aberrant ).

    Sans proposer de solution miracle, je pense pouvoir au moins faire en sorte que ce temps de latence ne se produise que la première fois.

    Pour ça, j'aimerais stocker le code html correspondant à ce formulaire dans une variable de session.

    La génération du formulaire est prise en charge par un script php inclu dans le script principal. Cet include est à gerber et je n'ai même pas envie d'essayer de l'améliorer. Est-il possible d'exécuter ce script, de récupérer ce qu'il génère comme html pour le stocker dans une variable ?

    Exemple de code de cet include :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <? if ($mode=='solo') { ?>
    <table><tr>...
    Merci d'avance pour toute idée

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 23
    Par défaut
    Tu peux donner un exemple du formulaire ?

  3. #3
    lr
    lr est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 338
    Par défaut
    Citation Envoyé par ZeroDono Voir le message
    Tu peux donner un exemple du formulaire ?
    Le formulaire propose des champs de saisie. Principalement des combo dont les choix viennent de la base de données est mettent beaucoup de temps à être générés.

  4. #4
    lr
    lr est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 338
    Par défaut
    Citation Envoyé par OWickerman Voir le message
    Ptete en modifiant le dit script, tu vires les echo, tu remplaces par "maVariableTexte .= blabla;"
    Et au moment opportun tu fais un
    echo maVariableTexte;
    Ca devrait marcher, et tu pourrais garder cette variable sous l'coude pour la rappeler.
    Oui en effet, c'est à ça que j'avais pensé au début. Mais c'est trop de travail malheureusement vu la tête du code


    Pensez-vous qu'on puisse faire qqch avec la gestion des tempons de sortie ?

    Je pourrais par exemple faire un ob_flush avant l'include, puis laisser s'exécuter le code de l'include et faire un ob_get_contents pour récupérer le html généré et faire un ob_clean pour qu'il ne soit pas envoyé au navigateur ?

    Ensuite, à chaque fois, avant de faire l'include, je teste si j'ai mon formulaire en session ou pas...

    c'est une idée, je viens de voir ça dans la doc php et je n'ai jamais travaillé avec ce genre de choses...

  5. #5
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Tu bufferise la sortie de ton formulaire en entourant l'include par les fonctions de bufferisation :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ob_start();
    require('include_vilain.php');
    $buffer = ob_get_contents();
    ob_end_clean();

    Et voilà, la variable $buffer est remplie.

    Plus de détails là : http://fr.php.net/manual/fr/ref.outcontrol.php

  6. #6
    lr
    lr est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 338
    Par défaut
    Oui en effet ça marche merci

    C'est pas parfait car j'aurais voulu faire une fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    fonction getRequireOnceContent($require)
    {
        ob_start();
        require_once( $require );
        $buffer = ob_get_contents();
        ob_end_clean();
        return $buffer;
    }
    mais ça ne marche pas, quand je l'appelle pal là, mon script inclus ne reçoit pas les variables défiinies avant son appel...

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 222
    Par défaut
    Ptete en modifiant le dit script, tu vires les echo, tu remplaces par "maVariableTexte .= blabla;"
    Et au moment opportun tu fais un
    echo maVariableTexte;
    Ca devrait marcher, et tu pourrais garder cette variable sous l'coude pour la rappeler.

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

Discussions similaires

  1. [MySQL] stocker dans une variable les resultats d'un while
    Par vinze60 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/02/2010, 16h20
  2. stocker dans une variable JSP une propriété d'un form
    Par jamesleouf dans le forum Struts 1
    Réponses: 4
    Dernier message: 06/02/2009, 15h02
  3. Stocker dans une variable de session une valeur
    Par leroidje dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/09/2008, 15h34
  4. Batch : stocker dans une variable
    Par Martin Guélat dans le forum Windows
    Réponses: 1
    Dernier message: 13/03/2007, 17h41
  5. Réponses: 2
    Dernier message: 28/02/2007, 21h01

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