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 :

[Système] Forcer l'exécution d'un code php


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 53
    Points : 41
    Points
    41
    Par défaut [Système] Forcer l'exécution d'un code php
    Bonjour,

    Je recupere les données d'un champ d'une BDD, par exemple
    $champ['texte']="L'objet est <?=show_item(5)?>";

    lors de l'affichage de cette variable la function show_item() n'est pas appelé.

    Je fais affiché la variable pr le moment avec un simple "echo $champ['texte'];"


    Merci d'avance.

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <pre><?php
     
    function show_item($val) {
        return '['.$val.']';
    }
    $champ = array();
    $champ['texte']="L'objet est <?=show_item(5)?>"; 
     
    $eval = '?'.'>'.$champ['texte'];
     
    eval($eval);
    ?>

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 53
    Points : 41
    Points
    41
    Par défaut
    Merci c'est parfait

    Mais pour pas recopier comme un boeuf, j'ai pas bien compris ces 2 dernières lignes magiques

    Quelqu'un pourrait m'expliquer?

    Merci

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    http://php.net/eval permet d'executer un code php.
    Or là ton code est mixte : html+php.
    On est dans un script php, donc il faut fermer le flux php grâce à ?>
    ce qui provoque :
    1. affichage de "L'objet est "
    2. entrée dans un code php et execution de celui-ci.

    Comme on est dans un eval, le script reste en php à la sortie apparemment, donc pas besoin de ré-ouvrir le flux php.

    il faut séparer '?>' en '?'.'>', sinon l'interpreteur croit que tu as fini ton script principal et il te ferait une parse error...

    Je sais pas si j'ai été clair

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 53
    Points : 41
    Points
    41
    Par défaut
    Limpide merci

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/03/2008, 15h15
  2. [Système] Répéter l'exécution d'un code
    Par gantec dans le forum Langage
    Réponses: 9
    Dernier message: 29/08/2007, 13h29
  3. planifier l'exécution d'un code php
    Par devboy dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 16/05/2007, 09h48
  4. Réponses: 1
    Dernier message: 04/01/2007, 22h52
  5. Réponses: 3
    Dernier message: 14/12/2006, 11h46

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