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 }}");
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.28, 8.4.1 - 8.4.14, 8.5.0
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>
Output for 8.4.15
/bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15)
Process exited with code 1.

preferences:
107.21 ms | 407 KiB | 5 Q