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 le contenu d'un include dans une chaine


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 113
    Points : 82
    Points
    82
    Par défaut Stocker le contenu d'un include dans une chaine
    En fait j'ai une nouvelle question
    comment inscrire le contenu d'un include dans une chaine de car ?

    exemple j'ai ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    include "truc/chose.php";
    echo "<html>";
    ...
    echo "</html>";
    que je voudrais remplacer par ceci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    include "truc/chose.php";
    $machaine= "<html>...</html>";
    echo $machaine;
    en mettant tout le contenu de chose.php dans machaine.

    Hassan, c'est possible ?


    Désolé ...

  2. #2
    Membre habitué
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 144
    Points : 151
    Points
    151
    Par défaut
    Où est l'intérêt de pouvoir faire sa ? je ne saisis pas

  3. #3
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 194
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 194
    Points : 8 404
    Points
    8 404
    Billets dans le blog
    17
    Par défaut
    Je ne comprends pas bien l'exemple, mais oui, c'est possible avec http://fr.php.net/outcontrol
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2009
    Messages : 34
    Points : 40
    Points
    40
    Par défaut
    Bon je ne te conseil pas de passer par cette méthode mais bon je t'en donne une qui peu t'aider (mais bon je te conseil de changer de raisonnement ..)
    Utilise les heredoc.

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $mavariable =<<<UNNOM
        <html> 
            <head> ...
        ...
        <html>
    UNNOM
    "UNNOM" sera ton nom de heredoc, cela aura pour effet de créer une chaine de tout ce qui se trouve à l'intérieur ..

    Pour plus d'information :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    <?php
    $str = <<<EOD
      Exemple de chaîne
      s'étalant sur
      plusieurs lignes
      avec la syntaxe heredoc
    EOD;
     
    /* Exemple plus complexe, avec des variables. */
    class foo {
        var $foo;
        var $bar;
        function foo() {
            $this->foo = 'Foo';
            $this->bar = array('Bar1', 'Bar2', 'Bar3');
        }
    }
     
    $foo = new foo();
    $name = 'MonNom';
     
    echo <<<EOT
      Mon nom est "$name". J'affiche des $foo->foo.
      Maintenant, j'affiche un {$foo->bar[1]}.
      Ceci se traduit par un 'A' majuscule : \x41
    EOT;
    ?>
    En passant, il faut bien placer le deuxième "UNNOM" en début de ligne sans rien devant, même pas d'espace.

    a+

  5. #5
    Membre régulier
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 113
    Points : 82
    Points
    82
    Par défaut Merci.
    MERCI, merci, merci les gars de vous être penchés sur laquestion.
    Monsieur ou madame laquestion.
    OK, hum, bon ...
    En fait le but de ce stockage est de pouvoir par la suite écrire tout ou partie du code dans un fichier HTML en dur, sur le serveur.
    Pourquoi ?
    Bon, vous avez fini de poser des questions oui ?

    Bon, en fait, j'ai splitté mon "appli" en 3 pages php.
    La première (A) "pilote" les deux autres (a et b), et les résultats qu'elle fournit sont identiques. Je les stocke donc dans une variable, puis les réutilise en la concaténant avec les résultats des 2 autres pages en fonction du choix de l'utilisateur.
    Exemple, l'utilisateur choisi d'afficher A+b puis le lendemain A+a. J'ai au préalable conserver A en dur, et je peux à loisir le réutiliser tant que les critères de l'utilisateurs indiquent que A n'a pas changé.
    Et plus fort encore, je peux fragmenter mes deux autres pages en plusieurs sous pages(a1, a2, a3 et b1, b2, b3), qui renverront elles aussi des résultats que je pourrais concaténer avec les autres déja calculés.
    Objectif ? Gagner du temps, et ça fonctionne.
    L'utilisateur choisi A+b dans un premier temps. Dans la page b qui pilote b1, b2et b3, il modifie un critère. Au lieu de recalculer TOUTE la page b, il ne demande qu'un recalcul de b3.
    Je ne sais pas si c'est pertinent ou intelligent, mais ça fonctionne.
    Avec des fonctions aurais-je pu m'en tirer à meilleur compte ?

    Je reste ouvert à d'autres méthodes, et si vous en connaissez d'autres plus efficaces, je suis preneur !!!

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 30
    Points : 29
    Points
    29
    Par défaut
    Je vois pas trop pourquoi tu veux stocker des includes dans une $var.

    Tu peux include directement du php ou du html, je vois pas trop ce qui pose problème dans ton cas.

    Si j'ai bien compris ton problème, c'est un système de cache que tu essayes de faire.

    Seulement ta façon de procéder est des plus et étrange.

    En gros si je comprend bien tu as un formulaire découpé en X parties et tu veux que chaque partie soit indépendante en fonction des choix de l'utilisateur.
    Si celui-ci modifie un champ, il faut que dans la partie ou ce champ est dispo que tu stockes le bloc dans un système de cache pour le ressortir tout fait plus tard sans devoir refaire tout le bloc.

    En php c'est possible mais c'est bcp de complexité pour pas grand chose.
    Car l'utilisateur qui apporte ses choix au form ca se passe dans le naigateur.
    Hors a la validation du form tu ne recevras que les champs du form et non la page html.

    Apres il te reste la solution de sur coucher avec un peu de js.
    Quand tu as un un champ qui est modifié tu alimentes un champs de type hidden en lui donnant les l'ID des blocs qui ont reçu une modification.
    Apres tu generes la cache de ton bloc en fonction des values passés dans le $_POST / $_GET du formulaire.
    C'est la solution la plus simple.

    Aprés il y a d'autres méthodes mais ca va être compliquer à mettre en place.

  7. #7
    FoxLeRenard
    Invité(e)
    Par défaut
    Salut !

    Je n' y comprends rien car la vrais structure serait avec un PHP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <html>
    <body>
    <?PHP
    include ("lehaut.php");
    include ("autrepartie.php");
    ?>
    </body>
    </html>

  8. #8
    Membre régulier
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 113
    Points : 82
    Points
    82
    Par défaut
    En fait maintenant cette discussion pourrait être cloturée tant il est vrai (et il est vrai) qu'ajax couplé à php permet de faire ça aisément.
    Fichtre.
    Merci d'avoir lu ma question.

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

Discussions similaires

  1. [Batch] Stocker le contenu d'un fichier dans une variable
    Par grandthor dans le forum Scripts/Batch
    Réponses: 10
    Dernier message: 15/04/2009, 08h47
  2. [RegEx] Stocker le contenu d'un preg_match_all dans une variable
    Par rajaneesh dans le forum Langage
    Réponses: 1
    Dernier message: 08/12/2008, 09h49
  3. Ecire le contenu d'un memo dans une bd
    Par ApollloCrid dans le forum Bases de données
    Réponses: 7
    Dernier message: 22/07/2005, 13h58
  4. Réponses: 2
    Dernier message: 12/01/2004, 13h56
  5. [TP]lire une ligne de l'ecran et la stocker dans une chaine
    Par Bleuarff dans le forum Turbo Pascal
    Réponses: 26
    Dernier message: 02/07/2002, 10h08

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