2011-10-25 5 views
1

Моего кода:str_replace не работает с Еогеаспом

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

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

Моего $text OFC. имеет {string1}, {string2} и {string3}, но он не заменяет его значениями, указанными в массиве.

Почему он не работает?

+0

Что означает окончательный возврат $? –

+0

Вы имели в виду назначить и не присоединяться к финалу? У вас есть =, но, возможно, вы хотите. =. – mqsoh

+0

@mqsoh Мне просто нужно, чтобы содержимое '$ _POST ['content']' было заменено значениями в массиве, мне не нужно ничего добавлять. – Cyclone

ответ

1

Этот код делает именно то, что вам нужно (без каких-либо дополнительных петель):

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

Спасибо, это сработало :) – Cyclone

0

Может быть, разные enconding, попробуйте следующее:

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

перед циклом;

Удачи!

Смежные вопросы