str_replace не работает с foreach - PullRequest
       19

str_replace не работает с foreach

1 голос
/ 25 октября 2011

Мой код:

$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}, но не заменяет его значениями, указанными в массиве.

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

Ответы [ 3 ]

1 голос
/ 25 октября 2011

использование

 $final = str_replace('{'.$key.'}', $val, $text);

Ссылка: http://php.net/manual/en/function.str-replace.php

1 голос
/ 18 мая 2012

Может быть другое окончание, попробуйте это:

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

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

Удачи!

1 голос
/ 25 октября 2011

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

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