<?php
function replaceValues(array $kvPairs, string $text): string
{
return preg_replace_callback(
'/{{\s*(.*?)\s*}}/',
fn($m) => isset($kvPairs[strtolower($m[1])])
? '<span class="attr">' . $kvPairs[strtolower($m[1])] . '</span>'
: '<span class="attrUnknown">' . $m[1] . '</span>',
$text
);
}
$translations = [
'date' => '1977-05-20',
'time' => '01:02:03',
'bar' => 'Fighters',
];
echo replaceValues($translations, "Your tickets to the Foo {{ Bar}} were purchased @ {{dAte }} {{ tiME }}");
- Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- Your tickets to the Foo <span class="attr">Fighters</span> were purchased @ <span class="attr">1977-05-20</span> <span class="attr">01:02:03</span>
preferences:
73.87 ms | 407 KiB | 5 Q