Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在文本块中查找并替换多个不同的关键字_Php_String_Str Replace - Fatal编程技术网

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

Php 在文本块中查找并替换多个不同的关键字,php,string,str-replace,Php,String,Str Replace,我有这个文本块,它应该是可定制的,因为一些单词/关键字可以定制。假设这是下面的文本块 亲爱的[姓名],Lorem ipsum dolor sit amet,尊敬的精英领袖, 这是一个非常重要的问题 aliquam erat于[日期]签字。这是我的小意思 不可撤销的经营权不可撤销 ea commodo consequat.请联系[电话号码] 方括号内的单词是应可替换的关键字。替换它们的数据将来自db,这很好。我想知道的是,做这件事的最好方法是什么。我是否应该一个接一个地搜索特定的关键字(还有更多的

我有这个文本块,它应该是可定制的,因为一些单词/关键字可以定制。假设这是下面的文本块

亲爱的[姓名],Lorem ipsum dolor sit amet,尊敬的精英领袖, 这是一个非常重要的问题 aliquam erat于[日期]签字。这是我的小意思 不可撤销的经营权不可撤销 ea commodo consequat.请联系[电话号码]


方括号内的单词是应可替换的关键字。替换它们的数据将来自db,这很好。我想知道的是,做这件事的最好方法是什么。我是否应该一个接一个地搜索特定的关键字(还有更多的关键字,但无法保证哪一个关键字会出现在哪一个文本块中,因此我必须检查每个文本块中所有可能的关键字),然后使用
str_replace
将它们替换为适当的值?或者,有没有更好的办法?谢谢。

str\u replace可以一步替换整个阵列:

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


$result = str_replace(array_keys($map), array_values($map), $input);
$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;