Execution de code PHP au sain d'un code PHP

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Execution de code PHP au sain d'un code PHP

par littlebusy » 27 oct. 2006, 11:46

jojolapine a bien compris ce dont j'avais besoin ! et j'ai trouvé mon bonheur sur http://fr.php.net/manual/fr/function.eval.php !

Code : Tout sélectionner

<?php $str = 'Ceci est une $string avec mon $name dedans.<br />'; [...] $string = 'tasse'; $name = 'café'; [...] eval( "\$str = \"$str\";" ); echo $str; ?>
On a sur la sortie standard : Ceci est une tasse avec mon café dedans.

Parfait !

par Ryle » 27 oct. 2006, 11:37

Euh... en l'occurence l'ordre n'aurait pas d'importance tant que la chaine n'est pas évaluée (bon ceci dit, avec les guillemets au lieu des apostrophes, elle l'est immédiatement donc ca ne marchera effectivement pas, mais c'est pas une raison ;))

Quant à la fonction que tu cherches, jette un coup d'oeil au fonctionnement de eval() :)

Enfin, s'il s'agit juste de variable et non d'instruction, la syntaxe simplifiée de php te permet d'obtenir simplement la variable d'une valeur :
$toto = 123;
$var = "toto";
echo $$var; // affiche "123"

par jojolapine » 27 oct. 2006, 11:36

je pense que ce qu'il voulait dire c'était plutôt quelque chose du genre:
$codephp="echo \"bonjour\"; for($i=0;$i<4;$i++) print($i);";
fonction_qui_exécute_php_dans_une_chaine($codephp);
et le résultat serait

Code : Tout sélectionner

bonjour0123
après je sais pas, j'ai peu-être mal compris? :roll:

par Cyrano » 27 oct. 2006, 11:31

Ce bout de code va obligatoirement générer une erreur parce que les lignes 1 et 2 sont inversées et que sur la ligne 1, ta variable $message n'est pas définie.
J'ajoute que tes crochets sur la ligne 3 n'ont rien à faire là et vont également générer une erreur.
Essaye donc :
$message = "Test";
$text = $message;
echo (interpreter($text));
Et pour simplifier encore davantage, tu pourrais supprimer carrément une ligne :
$message = "Test";
echo (interpreter($message));

Execution de code PHP au sain d'un code PHP

par littlebusy » 27 oct. 2006, 11:21

Bonjour,

Bonjour, je voudrai savoir s'il est possible de faire executer du code php contenu par exemple dans une chaine de caractères au sain d'un code php.

Exemple de code inutile mais qui illustre bien ce que je veux :

Code : Tout sélectionner

$text = "$message"; $message = "Test"; echo [interpreter($text)];
J'aimerai bien que ce soit le mot Test qui sorte sur la sortie standard.

Merci d'avance de votre aide.