在文本块中查找并替换多个不同的关键字

时间:2013-10-04 21:22:27

标签: php string str-replace

我有这个文本块,应该可以自定义一些可以自定义的单词/关键字。让我们说这是下面的文本块。

  

亲爱的[姓名],Lorem ipsum dolor sit amet,consectetuer adipiscing elit,   sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna   在[日期]上的aliquam erat volutpat。 Ut wisi enim ad minim veniam,quis   nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex   ea commodo consequat。请联系[PhoneNumber]

方括号内的单词是应该可替换的关键字。替换它们的数据将来自db,这很好。我想知道的是,最好的方法是什么。我应该逐个搜索特定的关键字(还有更多的关键字,但是不能保证哪个关键字可以在哪个文本块中显示,所以我必须为每个文本块检查所有可能的关键字)然后使用str_replace用适当的值替换它们?或者,有更好的方法吗?感谢。

2 个答案:

答案 0 :(得分:5)

str_replace可以一步替换整个数组:

$map = array('[PhoneNumber]'=>'...', '[Date]'=>'...',...);


$result = str_replace(array_keys($map), array_values($map), $input);

答案 1 :(得分:0)

$admin_email_text = 'This is [first-field-label] the test, you can send the email at [form-email]';
        $admin_email_text = str_replace("[form-email]", $biz_field_email, $admin_email_text);
        $admin_email_text = str_replace("[first-field-label]", $biz_field_one, $admin_email_text);
        print $admin_email_text;