2011-10-25 6 views
1

Mon code:str_replace ne fonctionne pas avec foreach

$str = array(
     '{$string1}' => 'anything2', 
    '{$string2}' => 'something1', 
    '{$string3}' => '...' 
); 

$final = ""; 
$text = $_POST['content']; 
foreach($str as $key => $val) { 
     $final = str_replace($key, $val, $text); 
} 

Mon $text ofc. a {string1}, {string2} et {string3} lui-même, mais ne le remplace pas par les valeurs données dans le tableau.

Pourquoi cela ne fonctionne pas?

+0

Qu'est-ce que $ final return? –

+0

Vouliez-vous dire assigner et ne pas ajouter à la finale? Vous avez un =, mais peut-être que vous voulez. – mqsoh

+0

@mqsoh J'ai juste besoin que le contenu '$ _POST ['content']' soit remplacé par les valeurs du tableau, je n'ai rien à ajouter. – Cyclone

Répondre

1

Ce code fait exactement ce dont vous avez besoin (sans boucles supplémentaires):

$final = strtr($_POST['content'], $str); 
+0

Merci, cela a fonctionné :) – Cyclone

0

Peut-être que les différents enconding, essayez ceci:

$ text = utf8_decode ($ _ POST ['content']); // ou utf8_encode

avant la boucle;

Bonne chance!

Questions connexes