php preg_replace coincide con
¿Cómo se accede a las coincidencias en preg_replace como una variable utilizable? Aquí está mi código de muestra:
<?php
$body = <<<EOT
Thank you for registering at <!-- site_name -->
Your username is: <!-- user_name -->
<!-- signature -->
EOT;
$value['site_name'] = "www.thiswebsite.com";
$value['user_name'] = "user_123";
$value['signature'] = <<<EOT
live long and prosper
EOT;
//echo preg_replace("/<!-- (#?\w+) -->/i", "[$1]", $body);
echo preg_replace("/<!-- (#?\w+) -->/i", $value[$1], $body);
?>
Sigo recibiendo el siguiente mensaje de error:
Error grave: error de sintaxis, inesperado '!$2$!#39;, esperando T_STRING o T_VARIABLE en la línea 18
La línea remarcada arriba con "[$ i]" funciona bien cuando la variable de coincidencia está entre comillas. ¿Me falta un poco de sintaxis?