Page 1 sur 1

str_replace ne fonctionne pas comme attendu

Posté : 23 avr. 2013, 10:50
par patrmich
Bonjour,

Je suis débutant en php.

Je cherche à utiliser str_replace, mais sans succès.

Mon problème est le suivant :

La variable var1 peut prendre la valeur test
Je souhaite effectuer le remplacement suivant :
si la variable var1 est égale à test, alors :
remplacer test
par
<span style="color: #003399"><font face="Verdana"><i>test</i></font></span>

J'ai utilisé le code ci-dessous, mais il ne fonctionne pas :
$templateVars['{var2}'] = str_replace('test', '<span style="color: #003399"><font face="Verdana"><i>test</i></font></span>', $templateVars['{var1}']);


Merci par avance pour toute aide à ce sujet.

Cordialement,

Patrick

Re: str_replace ne fonctionne pas comme attendu

Posté : 23 avr. 2013, 11:05
par moogli
salut,

qu'entend par ça ne fonctionne pas ?

peux tu donner un exemple de donnée pour test (ce que contient $templateVars['{var1}'] par exemple).

pour info les balise font et i ne sont plus trop au gout du jour utilise plutôt une classe css sur le span qui fera le tout ;) )


@+

Re: str_replace ne fonctionne pas comme attendu

Posté : 23 avr. 2013, 16:15
par patrmich
Merci pour la réponse

Ne fonctionne pas : je veux dire que le remplacement attendu ne se fait pas.

Pour prendre un exemple encore plus simple que le précédent :
Une valeur possible de var1 est "test"
Je souhaite effectuer l’opération suivante :
si la variable var1 est égale à "test", donner à la variable var2 la valeur "test-r"

Pour espérer faire cette opération, j'utilise le code suivant
$templateVars['{var2'] = str_replace('test', 'test-r', $templateVars['{var1}']);

Mais, malheureusement après cette opération, var2 (qui n'est défini que par la ligne ci-dessus) est égal à "test" et non à "test-r"

Merci encore pour toute aide

Patrick

Re: str_replace ne fonctionne pas comme attendu

Posté : 23 avr. 2013, 17:47
par sirakawa
<?PHP
$templateVars['{var1}'] = 'test';
/*Avec la syntaxe que tu envoies
Array ( [{var1}] => test [{var2] => test-r ) 
*/
$templateVars['{var2'] = str_replace('test', 'test-r', $templateVars['{var1}']);
print "<h1>Envoi</h1>";
print_r($templateVars);
unset($templateVars);
/*Avec une syntaxe usuelle*/
$templateVars['var1'] = 'test';
$templateVars['var2'] = str_replace('test', 'test-r', $templateVars['var1']);
print "<h1>Mon avis</h1>";
print_r($templateVars);
?>
Mais ce n'est pas var1 et var2 mais les éléments du tableau $templateVars....

Re: str_replace ne fonctionne pas comme attendu

Posté : 25 avr. 2013, 12:32
par patrmich
Bonjour,

Merci pour vos réponses précédentes,

J'ai modifié le code de la façon suivante :

ancienne méthode ne fonctionnant pas :
$templateVars['{var2'] = str_replace('test', 'test-r', $templateVars['{var1}']);

nouvelle méthode qui fonctionne :
if (!strcasecmp($templateVars['{var1}'], 'test'))
$templateVars['{var2}'] = '<span style="color: #003399;">'.$templateVars['{var1}'].'-r</span>';


Merci encore.

Cordialement,

Patrick