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