str_replace不适用于foreach

时间:2011-10-25 02:23:50

标签: php foreach 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}本身,但它不会用数组中给出的值替换它。

为什么它不起作用?

3 个答案:

答案 0 :(得分:1)

此代码完全符合您的需要(没有任何额外的循环):

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

答案 1 :(得分:1)

使用

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

参考:http://php.net/manual/en/function.str-replace.php

答案 2 :(得分:1)

也许是不同的编码,试试这个:

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

循环之前

;

祝你好运!