3v4l.org

run code in 300+ PHP versions simultaneously
<?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 }}");

preferences:
25.12 ms | 405 KiB | 5 Q