我有一个包含以下文字的字符串:
Id: {id}
Status: {status}
Priority: {prio}
我想将 {id} , {status} 和 {prio} 替换为各自的值。
例如:
{i} = '1'
{status} = 'New'
{prio}: 'Low'
如何在PHP中执行此操作?
答案 0 :(得分:2)
使用preg_replace_callback
;回调函数的返回值用作替换字符串。
$data = array(
'id' => '1',
'status' => 'New',
'prio' => 'Low',
);
$str = 'Id: {id}
Status: {status}
Priority: {prio}';
$str = preg_replace_callback('/{(\w+)}/', function($match) use($data) {
return $data[$match[1]];
}, $str);
echo($str);
输出:
Id: 1
Status: New
Priority: Low
答案 1 :(得分:2)
请参阅 strtr (不使用正则表达式)
$trans = array(
'{id}' => '1',
'{status}' => 'New',
'{prio}' => 'Low'
);
echo strtr($text, $trans);