OVH Cloud OVH Cloud

Interpolation du contenu d'une variable

14 réponses
Avatar
jibux
Bonjour

Voici un petit prg qui résume mon pb d'interpolation :

$str='Je veux le contenu de "$toto"';
$toto=" cette variable est définie après celle qui y fait référence";
print($str);

Comment dire à php de parser le contenu de $str afin d'obtenir ce résultat :

Je veux le contenu de "cette variable est définie après celle qui y fait
référence"

Mes différentes recherches n'ayant pas abouties, je soumets ce problème à
votre sagacité.
--
jeb
http://jebissey.free.fr

10 réponses

1 2
Avatar
Paul Delannoy
jibux a écrit:
Bonjour

Voici un petit prg qui résume mon pb d'interpolation :

$str='Je veux le contenu de "$toto"';
$toto=" cette variable est définie après celle qui y fait référence";
print($str);

Comment dire à php de parser le contenu de $str afin d'obtenir ce résultat :


$str="Je veux le contenu de $toto";
devrait le faire.

Avatar
Olivier Miakinen

Voici un petit prg qui résume mon pb d'interpolation :


Interpolation ? Interprétation, peut-être ?

$str='Je veux le contenu de "$toto"';
$toto=" cette variable est définie après celle qui y fait référence";
print($str);

Comment dire à php de parser le contenu de $str afin d'obtenir ce résultat :

Je veux le contenu de "cette variable est définie après celle qui y fait
référence"


<cit. http://fr2.php.net/manual/fr/function.eval.php>
eval( "$str = "$str";" );
</cit.>

En fait, ça ne devrait pas marcher directement à cause des " dans $str,
mais cela te donne une idée.


Peut-être comme ceci (non testé) :

$str='Je veux le contenu de "$toto"';
$toto=" cette variable est définie après celle qui y fait référence";
eval("print("$str")");

Avatar
ftc
$str='Je veux le contenu de "$toto"';
$toto=" cette variable est définie après celle qui y fait référence";
print($str);

Comment dire à php de parser le contenu de $str afin d'obtenir ce résultat :

Je veux le contenu de "cette variable est définie après celle qui y fait
référence"


Méthode un peu bourrin:

$str = 'Je veux le contenu de $toto';
$toto = ' cette variable est définie après celle qui y fait référence';

$str = str_replace( '$toto', $toto, $str );

Avatar
Vincent Lascaux
$str='Je veux le contenu de "$toto"';
$toto=" cette variable est définie après celle qui y fait référence";
print($str);

Comment dire à php de parser le contenu de $str afin d'obtenir ce résultat
:

Je veux le contenu de "cette variable est définie après celle qui y fait
référence"


Est ce que str_replace('$toto', $toto, $str) te convient ?

--
Vincent

Avatar
Olivier Miakinen

Est ce que str_replace('$toto', $toto, $str) te convient ?



Méthode un peu bourrin:
[...]
$str = str_replace( '$toto', $toto, $str );


Haha... excellent ! Je n'y avais pas pensé. Le seul truc, c'est que si
jibux veut mélanger les $toto avec des $titi et des $MachinTrucChose il
va être un peu fastidieux de traiter tous les cas... mais vous avez
raison tous les deux, sans autre précision sur ce qu'il veut faire
votre solution est parfaite.

Avatar
Guillaume Bouchard
jibux wrote:
Bonjour


Bonjour,

$str='Je veux le contenu de "$toto"';
$toto=" cette variable est définie après celle qui y fait référence";
print($str);

Comment dire à php de parser le contenu de $str afin d'obtenir ce résultat :


Certains t'on donné de très bonnes reponses. Maitenant à moi de te poser
une question (car je suis un grand curieux).
À quoi va te servir tout ce bordel monstrueux ?

J'ai comme un doute sur la presence d'une mauvaise conception.

--
Guillaume.

Avatar
Marc

J'ai comme un doute sur la presence d'une mauvaise conception.


effectivement. Cela fait maintenant plus de 3 ou 4 ans que
j'utilise php sans avoir jamais eu besoin de faire cela.

Avatar
jibux
Guillaume Bouchard wrote:

jibux wrote:
Bonjour


Bonjour,

$str='Je veux le contenu de "$toto"';
$toto=" cette variable est définie après celle qui y fait référence";
print($str);

Comment dire à php de parser le contenu de $str afin d'obtenir ce
résultat :


Certains t'on donné de très bonnes reponses. Maitenant à moi de te poser
une question (car je suis un grand curieux).
À quoi va te servir tout ce bordel monstrueux ?

J'ai comme un doute sur la presence d'une mauvaise conception.

Bonsoir Guillaume,


Cela va me servir dans un générateur de formulaire.
En simplifiant un petit peu, on créé un objet en lui indiquant :
- une requête SQL
- un format d'affichage faisant référence aux champs de la requête (d'où mon
pb de réf.)
Et l'on peu afficher, filtrer et modifier les données dans le formulaire
créé par l'objet.

En espérant avoir satisfait ta curiosité ;-)
--
jeb
http://jebissey.free.fr


Avatar
jibux
Olivier Miakinen wrote:


Voici un petit prg qui résume mon pb d'interpolation :


Interpolation ? Interprétation, peut-être ?
Non c'est bien interpolation qui est utilisé entre autre sur

http://fr.php.net/print
(j'avoue avoir découvert ce terme en effectuant mes recherches pour ce pb)


<cit. http://fr2.php.net/manual/fr/function.eval.php>
eval( "$str = "$str";" );
</cit.>

En fait, ça ne devrait pas marcher directement à cause des " dans $str,
mais cela te donne une idée.


Peut-être comme ceci (non testé) :

$str='Je veux le contenu de "$toto"';
$toto=" cette variable est définie après celle qui y fait référence";
eval("print("$str")");


Merci pour ta réponse mais visiblement eval n'aime pas les $
Parse error: parse error, unexpected $ in /var/www/test.php(9) : eval()'d
code on line 1

Grâce à ta réponse j'ai trouvé la solution

$str='Je veux le contenu de $toto';
$toto=" cette variable est définie après celle qui y fait référence";
eval("print("$str");");

Merci Olivier
--
jeb
http://jebissey.free.fr


Avatar
jibux
jibux wrote:

Bonjour

Voici un petit prg qui résume mon pb d'interpolation :

$str='Je veux le contenu de "$toto"';
$toto=" cette variable est définie après celle qui y fait référence";
print($str);

Comment dire à php de parser le contenu de $str afin d'obtenir ce résultat
:

$str='Je veux le contenu de $toto';

$toto=" cette variable est définie après celle qui y fait référence";
eval("print("$str");");

Merci encore à toutes les personnes qui se sont penchées sur mon petit pb.
--
jeb
http://jebissey.free.fr

1 2