/******按变量名替换***********/
$originalStr = '这是第一个{$Count},这是第二个{$Target}';
$values = ['Count' => 1, 'Target' => 2];
$replaceStr = preg_replace_callback('/\\{\$([\w\-\/]+)\\}/', function ($matches) use ($values) {
$name = $matches[1];
return array_key_exists($name, $values) ? $values[$name] : '';
}, $originalStr);
echo $replaceStr; // 这是第一个1,这是第二个2
/******按变量顺序替换***********/
$originalStr = '这是第一个{$Count},这是第二个{$Target}';
$values = [1, 2];
$valueIndex = 0;
$replaceStr = preg_replace_callback('/\\{\$([\w\-\/]+)\\}/', function () use ($values, &$valueIndex) {
$rStr = $values[$valueIndex] ?? '';
$valueIndex ++;
return $rStr;
}, $originalStr);
echo $replaceStr; // 这是第一个1,这是第二个2