cs_Elektordi
Messages postés186Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention21 janvier 2008
-
20 août 2005 à 12:49
malik7934
Messages postés1154Date d'inscriptionmardi 9 septembre 2003StatutMembreDernière intervention15 août 2009
-
23 août 2005 à 09:46
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
malik7934
Messages postés1154Date d'inscriptionmardi 9 septembre 2003StatutMembreDernière intervention15 août 200917 23 août 2005 à 09:46
Hehe, en reflechissant, j'ai quand meme compris ce qui coincait avec eval...
<?php
$fct1 = "bonjour les amis";
eval( "\$fct1 = $fct1;" );
echo $fct1;
?>
ca, ca va donner une erreur (parse error, unexpected T_STRING). Bien sur $fct1 = "'bonjour les amis'" est la solution mais dans le cas present, celui qui m'a demande la fct ne peux pas changer le contenu de la base de donnees...
GiUsTiNo
Messages postés129Date d'inscriptionlundi 26 avril 2004StatutMembreDernière intervention30 juin 2012 21 août 2005 à 23:27
le plus facile est de mettre directement le code php dans la fonction eval() pour pas chipoter avec les slash/guillemets... Personnelement, j'ai utilisé cette technique, mes pages étant en base de données, je les récupérais avec eval() (si code php il y avait => avec le html, cela retourne une erreur, bien sur :p)
Bonne continuation
malik7934
Messages postés1154Date d'inscriptionmardi 9 septembre 2003StatutMembreDernière intervention15 août 200917 20 août 2005 à 13:26
J'ai testé tes deux propositions. La deuxième retourne une erreur, mais la première va:
?>
va me donner
bonjour les amis
fctperso('bonjour les amis')
strrev('bonjour les amis')
pow(2, 8)
et non pas le résultat des fonctions.
Hehe... j'avais d'ailleurs commencé par essayer avec eval... t'as essayé ce que tu disais avant de poster? Peut-être que je ne sais pas employer eval de la bonne manière...
cs_Elektordi
Messages postés186Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention21 janvier 2008 20 août 2005 à 12:49
>Voilà... et le premier qui me sort le même code en 2 lignes, je le frappe ;)
Dommage... Voila le même code en UNE ligne !!!
$name = "bonjour les amis"; -> eval($name): bonjour les amis
$string = "fctperso('bonjour les amis')"; -> eval($string): Vous avez écrit bonjour les amis
$fct1 = "strrev('bonjour les amis')"; -> eval($fct1): sima sel ruojnob
$fct2 = "pow(2, 8)"; -> eval($fct1): 256
23 août 2005 à 09:46
<?php
$fct1 = "bonjour les amis";
eval( "\$fct1 = $fct1;" );
echo $fct1;
?>
ca, ca va donner une erreur (parse error, unexpected T_STRING). Bien sur $fct1 = "'bonjour les amis'" est la solution mais dans le cas present, celui qui m'a demande la fct ne peux pas changer le contenu de la base de donnees...
21 août 2005 à 23:27
Bonne continuation
20 août 2005 à 13:26
$fct1 = "strrev('bonjour les amis')";
eval( "\$fct1 = $fct1;" );
echo $fct1;
cela donne bien "sima sel ruojnob"... well... je crois bien que je l'ai dans l'os!
Ben voilà, touché coulé le malik7934!
20 août 2005 à 13:14
Et si tu enlevait les guillemets:
eval( "\$fct1 = $fct1;" );
ou
eval( "\$fct1 = ".$fct1.";" );
Quand au $name, c'est car ds ta fonction tu as rajouté "if (count($sep[0]) == 1) echo $param;", mais bon ca peut s'arranger tout en utilisant eval!
20 août 2005 à 13:00
<?php
$name = "bonjour les amis";
eval( "\$name = "$name";" );
echo $name;
echo '
';
$string = "fctperso('bonjour les amis')";
eval( "\$tring = "$string";" );
echo $string;
echo '
';
$fct1 = "strrev('bonjour les amis')";
eval( "\$fct1 = "$fct1";" );
echo $fct1;
echo '
';
echo '
';
$fct2 = "pow(2, 8)";
eval( "\$fct2 = "$fct2";" );
echo $fct2;
echo '
';
?>
va me donner
bonjour les amis
fctperso('bonjour les amis')
strrev('bonjour les amis')
pow(2, 8)
et non pas le résultat des fonctions.
Hehe... j'avais d'ailleurs commencé par essayer avec eval... t'as essayé ce que tu disais avant de poster? Peut-être que je ne sais pas employer eval de la bonne manière...
20 août 2005 à 12:49
Dommage... Voila le même code en UNE ligne !!!
$name = "bonjour les amis"; -> eval($name): bonjour les amis
$string = "fctperso('bonjour les amis')"; -> eval($string): Vous avez écrit bonjour les amis
$fct1 = "strrev('bonjour les amis')"; -> eval($fct1): sima sel ruojnob
$fct2 = "pow(2, 8)"; -> eval($fct1): 256
Plus d'infos: http://www.nexen.net/docs/php/annotee/function.eval.php