eval() avec des "? - PHP - Programmation
Marsh Posté le 02-01-2004 à 16:27:16
Parse error: parse error, unexpected T_STRING in c:\program files\apache group\apache\htdocs\listgen\stocklist.php(346) : eval()'d code on line 1
Marsh Posté le 02-01-2004 à 16:33:02
Promto
$poi_nouveau="TOTO tutu lulu";
$tab[$iP][$jP]="<td $classPromo bgcolor=$row_color><span title=\" $poi_nouveau\">$prix€</span></td>";
$res=$tab[$i][$j];
eval(" \$res= \"$res\"; " );
echo $res;
Marsh Posté le 02-01-2004 à 16:37:55
Y faut aussi mettre de \ devant les $ pour les variables à évaluer au deuxième passage...
Marsh Posté le 02-01-2004 à 16:40:27
Et puis y'a un mélange de $i et de $iP, idem pour $j et $jP...
Marsh Posté le 02-01-2004 à 16:52:00
eval(" \$res= \"$res\"; " );
Donne :
$res= "XXX";
ou XXX vaut :
<td classe="truc" bgcolor="couleur"><span title="titre">125€</span></td>
Donc
$res= "<td classe="truc" bgcolor="couleur"><span title="titre">125€</span></td>";
Y'a donc un GRAVE problème de " !
Marsh Posté le 02-01-2004 à 18:22:13
Comme ça je pense que ce sera mieux : eval("<span title=\"".$poi_nouveau."\">" );
Marsh Posté le 03-01-2004 à 18:35:13
Et tu raconte une grosse connerie
L'expression dans eval() doit être une expression PHP, genre
Code :
|
mais,
Code :
|
est loin d'en être une !
Je trouve que ça ressemble plutôt à du HTML
Marsh Posté le 03-01-2004 à 18:37:25
mara's dad a écrit : Et tu raconte une grosse connerie
|
Marsh Posté le 03-01-2004 à 21:32:27
certes, il faut remplacer eval par echo et ça marche mieux
Marsh Posté le 05-01-2004 à 08:40:40
Ce n'est pas le pb d'evaluation des variables!
ça c'est nickel.
Le pb c'est que je veux obtenir de Eval une ligne avec des ", et il n'en veux pas si je passe ça :
$var="<td $classPromo bgcolor=$row_color><span title=$poi_nouveau>10Francs</span></td>";
ça fonctionne mais j'obtiens une ligne de type
<td class=promo bgcolor=#FFDDFF><span title=Un titre avec des espaces>10Francs</span></td>
,
comme il n'y a pas de " " pour la balise title, bha mon title il affiche que : Un.
je me suis dit facile il faut juste mettre des "" dans $var genre comme ça :
$tab[$iP][$jP]="<td $classPromo bgcolor=$row_color><span title= \" $poi_nouveau \" >$prix€</span></td>";
bha ça marche pas j'ai un message d'erreur
Marsh Posté le 05-01-2004 à 08:44:04
donc en fait comment escapé les ", apparament ce n'est pas avec les /
peut être autre chose?
Marsh Posté le 05-01-2004 à 08:58:45
Bon j'ai essayé de réfléchir
Je me suis souvenu des ' et ", l'un pas interpreté l'autre oui.
J'ai tenté ça :
$var="<td><span title=".'\"'."$poi_nouveau".'\"'.">10Francs</span></td>";
ça marche
Marsh Posté le 05-01-2004 à 21:38:17
Autre truc peut-être :
le problème je pense c'est que la ligne
Code :
|
va mettre dans $tab[$iP][$jP] cette valeur :
Code :
|
(j'ai remplacé les variables $classPromo, $row_color, $poi_nouveau et $prix_euro par leur propre nom à la place de leur valeur que je ne connais pas)
Ensuite la ligne
Code :
|
va en fait évaluer :
Code :
|
Petit problème : les guillemets autour de poi_nouveau ne sont pas échappés ici donc il a va faire une erreur.
Il faudrait donc plutôt faire :
Code :
|
où dans $tab[$iP][$jP], \\\" va être remplacé par \" et donc PHP évaluera bien
Code :
|
Sinon c'est sûr qu'avec des quotes, tu auras moins de problèmes =)
Et heuu pourquoi tu fais un eval à cet endroit ci ? (j'aurais encore pu voir l'interêt si tu avais échappé les $)
Marsh Posté le 06-01-2004 à 08:05:58
Bha en fait le tab c'est un tableau à deux dimensions?
C'est pour faire de l'affichage.
Les lignes vides, ont été initialisé anterieurement dans le tab, à ce moment, je ne connais pas encore la couleur de la ligne...
En faisant un effort je pourrais faire qqchose de plus joli.
Mais sur le moment j'avais pas le temps de revoir mon concept.
En gros je dessinais mon tableau, et ho rage ho desespoir! certaines casses n'etaient pas coloriées
Marsh Posté le 02-01-2004 à 16:24:34
Bonjour,
voici une ligne
$tab[$iP][$jP]="<td $classPromo bgcolor=$row_color><span title= \" $poi_nouveau \" >$prix€</span></td>";
qui est passé à Eval.
j'obtiens un : Parse error: parse error, unexpected T_VARIABLE in c:\program files\apache group\apache\htdocs\listgen\stocklist.php(346) : eval()'d code on line 1
si je retire ce qui est en gras, ça passe MAIS, mon $poi_nouveau contient des espaces, donc mon title ne s'affiche pas correctement.
Comment passé des "" à Eval?
Merci.
Message édité par AGA le 05-01-2004 à 08:36:29