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 :

include morceau de code


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut include morceau de code
    Bonjour à toutes et à tous,
    Comment peut on faire pour inclure un morceau de code qui se répète un peu partout dans un script sans l'inclure à partir d'un fichier externe mais en utilisant un morceau de code qui se trouve dans le script en lui même. Ça correspond à un include comme en C.
    Merci

  2. #2
    Membre très actif
    Avatar de Gecko
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Décembre 2008
    Messages
    499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Décembre 2008
    Messages : 499
    Par défaut
    salut, il faut que tu définisse ton morceau de code en fonction et ensuite tu l'appelles comme bon te semble.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function MaFonction($Argument)
    {
    // Code de la fonction que tu veut pouvoir executer
    }

    ensuite pour l'appeler, mettons que ça soit pour traiter une variable :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $Var = "hello world";
    echo MaFonction($Var);

    tu peux aussi la faire sans argument si tu ne dois pas passer de variable ou que les variables sont transmises par $_POST ou $_GET

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut
    J'y avais pensé mais je me disais qu'il existait peut être quelque chose d'autre.
    En tout cas merci beaucoup de ta réponse.

  4. #4
    Membre confirmé
    Avatar de Psycadi
    Homme Profil pro
    Chef de projet - Expert en message box
    Inscrit en
    Juillet 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet - Expert en message box

    Informations forums :
    Inscription : Juillet 2003
    Messages : 147
    Par défaut
    la fonction include('script.php'); permet de mettre tout le code contenu dans ton script, directement dans la page que tu veux.

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut
    Merci de ta réponse, mais tu as mal lu ma question. Je ne veux pas inclure un fichier (un script) externe mais un morceau de code se trouvant dans le même script. Si tu as une solution, n'hésite pas, parce que être obligé de passer par une fonction pour faire ça je trouve ça un peu très lourd et ça prend des ressources.

  6. #6
    Membre très actif
    Avatar de Gecko
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Décembre 2008
    Messages
    499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Décembre 2008
    Messages : 499
    Par défaut
    En étant dans le même fichier sans inclusion tu es obligé de passer par une fonction ou une variable.

    Sachant que tu as dis que c'était un morceau de code j'ai pensé à plusieurs lignes de script, donc la fonction est la plus appropriée à mon sens.

    Je ne vois pas en quoi utiliser une fonction est très lourd dans ton cas, il sera certainement plus lourd d'inclure ton morceau de code partout dans ton script

  7. #7
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Salut,

    J'ai testé l'utilisation de syntaxe HEREDOC et de la fonction eval() qui permet d'exécuter une chaîne comme un script PHP.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $str = <<<MACRO
    echo '<p>';
    echo 'coucou';
    echo "<p>\n";
    MACRO;
     
    eval($str);	// Affiche coucou
     
    eval($str);	// Affiche coucou
    ?>
    Ca fonctionne mais c'est sans aucun doute plus lourd qu'un simple appel à une fonction contenant le code à dupliquer comme la suggéré Bloody-wave.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    function macro(){
    	echo '<p>';
    	echo 'coucou';
    	echo "<p>\n";
    }
     
    macro();	// Affiche coucou
     
    macro();	// Affiche coucou
    ?>

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut
    Ce qui est lourd c'est de devoir passer tous les paramètres à la fonction lorsqu'il y en a beaucoup, et de les passer par référence quand il s'agit de données modifiables en sortie. De plus ça prend des ressources pour le traitement. J'ai essayé et le temps de traitement a été rallongé par rapport à une version sans fonctions.
    C'est fort dommage qu'il n'existe pas une fonction qui fasse un simple copier/collé du code avant traitement à l'intérieur d'un même script (comme include() mais sans devoir passer par un script externe). Ça épargnerait l'utilisation inutile de ressource dans ce genre de cas. Mais bon, tant pis on fera sans .

    Mais je vais qu'en même tester ta solution Eric2a, ça a l'air pas mal.

    En tout cas merci à tous, et si quelqu'un à d'autres solutions, qu'il n'hésite pas.

  9. #9
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut
    Ok, j'ai testé eval et ça fonctionne impeccable, c'est exactement ce que je cherchais. En fait la fonction commande l'interprétation du morceau de code à l'endroit où on l'appel comme si le code était noté explicitement à cet endroit. Du coup pas besoin de passer de paramètres comme avec la technique utilisant une fonction spécifique pour interpréter le code, et au niveau ressource le script est aussi rapide que si le code était présent au différents endroits où on appel eval(). De plus eval() peut aussi être utilisée pour interpréter du code stocké dans une base de donnée, c'est d'ailleurs sa fonction première.

    Merci Eric2a.

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

Discussions similaires

  1. Paralléliser un morceau de code
    Par yann_m dans le forum Fortran
    Réponses: 7
    Dernier message: 09/10/2007, 12h48
  2. Réponses: 4
    Dernier message: 20/07/2007, 03h49
  3. Réponses: 10
    Dernier message: 30/03/2007, 17h30
  4. Réponses: 12
    Dernier message: 08/02/2005, 23h42
  5. [JSP] [include] inclure un morceau de code
    Par viena dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/01/2005, 11h51

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