
Cómo automodificar un .php ejecutando un script perl sobre un template
Publicado por Ramiro (3 intervenciones) el 01/12/2013 12:08:52
En una web (en linux) de meteorología que voy mejorando uso un .php con datos de una SQLite que inicialmente se crea mediante un perl que interpreta un template que hace todo el trabajo pesado con la DB. Así se consigue que todos los datos diarios del día actual sean claramente visibles en la web.
Pero estoy intentando permitir al usuario la elección del día que quiera ver. El .php recibe la fecha (un input type="date" de HTML5) y lo que quiero es usar el mismo procedimiento: llamar al perl que actúa sobre el template con la nueva fecha. Que debería recrear el php y visualizarlo de nuevo. Pero no lo consigo.
Para que os hagais una idea: el mecanismo (perl-->template->php) funciona cuando se llama desde la línea de comandos o desde el cron al ejecutable perl. Estoy intentando algo como esto:
/ramiro
Pero estoy intentando permitir al usuario la elección del día que quiera ver. El .php recibe la fecha (un input type="date" de HTML5) y lo que quiero es usar el mismo procedimiento: llamar al perl que actúa sobre el template con la nueva fecha. Que debería recrear el php y visualizarlo de nuevo. Pero no lo consigo.
Para que os hagais una idea: el mecanismo (perl-->template->php) funciona cuando se llama desde la línea de comandos o desde el cron al ejecutable perl. Estoy intentando algo como esto:
* en el .php: consigo la $fecha nueva (GET o POST, igual me da) y escribo
1
exec('fich_perl.pl --template.tpl,' . $fecha);
* Uso apache y he dado permisos cgi-bin a los .pl y acceso al directorio donde está el 'fich_perl.pl' (esto último no me gusta nada).
La llamada 'exec' no reescribe el .php. Y ahí me quedo. He probado los 'shell_exec' y 'passthru' y tampoco. Las variables de retorno de todos ellos quedan vacías. Ya veis que soy muy novato con php y que seguro estoy malentendiendo algo básico. O también, que no quede otra que reescribir el php para que haga la faena del template: ¡da pereza!Muchas gracias por vuestra atención
/ramiro
Valora esta pregunta


0