PHP embebido en HTML

Dado el motivo que sea supongamos que queremos ejecutar algún trozo de código PHP dentro de una plantilla HTML. Pongámonos en situación para poder comprender mejor el escenario.

Imaginemos un gestor de contenidos con su editor correspondiente donde la gente introduce eso -los contenidos-. Supongamos por un momento que además de la maquetación de los mismos... color, tipo de fuente, imágenes y demás factores estilográficos; queremos que pueda ejecutar cierto código PHP delimitado por unas etiquetas dadas. La solución no podría ser más sencilla e imaginativa:
$cadena = "Esto será php: (php)echo 'hola mundo -';(/php) (php)echo 'otra cadena';(/php): genial.";
function my_cb($matches)
{
  ob_start();
  eval($matches[1]);
  return ob_get_clean();
}
$cadena = preg_replace_callback('/\(php\)(.+?)\(\/php\)/s', 'my_cb', $cadena);
echo $cadena;
Se ejecuta el código dentro de las cadenas (php) y (/php) como si el intérprete lo entendiera. El resultado sería:
Esto será php: hola mundo - otra cadena: genial
Con esta pequeña pista, un bucle y un par de cosillas más tendremos implementado el sistema para cualquier gestor de contenidos -o similar- que decidamos.

About the author

Óscar
has doubledaddy super powers, father of Hugo and Nico, husband of Marta, *nix user, Djangonaut and open source passionate.