Foros del Web » Programando para Internet » PHP »

PHP OO Ejecutar codigo (dinamico) PHP de una variable

Estas en el tema de Ejecutar codigo (dinamico) PHP de una variable en el foro de PHP en Foros del Web. Buenas, tengo una consulta, ya googlie un poco y no encontre nada, busque ejecutar codigo php y codigo dinamico php pero no obtengo buenos resultados. ...
  #1 (permalink)  
Antiguo 21/07/2011, 14:55
 
Fecha de Ingreso: septiembre-2008
Mensajes: 148
Antigüedad: 15 años, 7 meses
Puntos: 10
Pregunta Ejecutar codigo (dinamico) PHP de una variable

Buenas, tengo una consulta, ya googlie un poco y no encontre nada, busque ejecutar codigo php y codigo dinamico php pero no obtengo buenos resultados.
El tema es que estoy haciendo un sitio, usando objetos y mvc, la diferencia es que el controlador construye en una variable la pagina con lo que el modelo y la vista la envian.
Haciendo esto me soluciona un monton de problemas con las llamas a headers cuando ocurre un error en algun momento, ya que solo cuando la pagina (en una variable) se completo, recien es mostrada.
Cuando empece la pagina generada era puro html, por lo tanto con un simple echo $this->pagina; se mostraba la pagina. Pero en este momento estoy ya dandole logica al modelo (a unos de los modelos, el de la seccion principal) y me encuentro con el problema de que con el simple echo $this->pagina; me muestra el codigo php del modelo y no los resultados ^^.

Como puedo hacer para que en lugar del echo $this->pagina; haya algo asi como: ejecutar($this->pagina); y que eso me muestre el html con el php embebido ya resuelto???

Gracias desde ya.

PD: PHP5.
  #2 (permalink)  
Antiguo 21/07/2011, 15:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Ejecutar codigo (dinamico) PHP de una variable

Puedes usar eval().

Saludos.
  #3 (permalink)  
Antiguo 21/07/2011, 15:18
 
Fecha de Ingreso: septiembre-2008
Mensajes: 148
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Ejecutar codigo (dinamico) PHP de una variable

Eso estoy intentando... pero no hay caso...
FROM http://php.net/manual/es/function.eval.php: La cadena de código a ser evaluada. code_str no tiene que contener etiquetas de apertura de PHP.

En la variable yo tengo lo siguiente:
<?php muchoCodigo; ?>
<html>
<muchosTags>
<?php codigoEmbebido;?>
</muchosTags>
</html>
  #4 (permalink)  
Antiguo 21/07/2011, 15:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Ejecutar codigo (dinamico) PHP de una variable

Solo cierra antes:
Código PHP:
Ver original
  1. eval('?> ' . $code);

Saludos.
  #5 (permalink)  
Antiguo 21/07/2011, 18:43
 
Fecha de Ingreso: septiembre-2008
Mensajes: 148
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Ejecutar codigo (dinamico) PHP de una variable

Hice eso... pero me tira errores... errores que deben estar relacionados con el hecho de que eval no permite etiquetas de apertura de php... y que estan presentes en la porcion de html con php embebido.

Última edición por LhaN; 21/07/2011 a las 19:27
  #6 (permalink)  
Antiguo 21/07/2011, 19:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ejecutar codigo (dinamico) PHP de una variable

Cita:
Iniciado por LhaN Ver Mensaje
Hice eso... pero me tira errores... errores que deben estar relacionados con el hecho de que eval no permite etiquetas de apertura de php... y que estan presentes en la porcion de html con php embebido.
En teoría debería funcionar, sin embargo los errores deben indicarnos mas información que la que tu proporcionas.

El error no está en evaluar el código sino en lo código que se evalúa.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 21/07/2011, 20:28
 
Fecha de Ingreso: septiembre-2008
Mensajes: 148
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Ejecutar codigo (dinamico) PHP de una variable

Vamos... que el codigo es una pasada...
Tengo cuatro archivos:
  • modelo.php:
    <? //conexion a una base de datos
    //consulta select * from tabla where id=1
    //asignacion de campos de la tupla a variables
    ?>
  • header.html: <html><head><title>Bienvenido</title></head><body>
  • footer.html:</body></html>
  • vista.php
    <table>
    <tr>
    <th>Nombre</th>
    <th>Mail</th>
    </tr>
    <tr>
    <td><? echo $nombre; ?></td>
    <td><? echo $mail; ?></td>
    </tr>
    </table>

Luego con una funcion mia, lee texto de un archivo y lo devuelve como string, concateno en una variable $pagina los archivos:
$pagina=mifuncion("modelo.php").mifuncion("header. html").mifuncion("vista.php").mifuncion("footer.ht ml");

eval($pagina); error con < en line 1...
eval('?>'.$pagina); error con $end... (dicho sea de paso... no hay ningun $end en ningun lado).

Antes esos 4 archivos eran un solo php que si funcionaba... solo corte el archivo php en 4 partes.
  #8 (permalink)  
Antiguo 21/07/2011, 22:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ejecutar codigo (dinamico) PHP de una variable

Amigo, es que no puedes cortar un archivo y esperar que funcione como si fuera uno solo.

Hay cosas importantes que no puedes romper de tajo, si hay lógica y defines variables en el primer archivo y en el siguiente las usas ahí tienes un grave problema de contexto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 22/07/2011, 03:01
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Ejecutar codigo (dinamico) PHP de una variable

Si lo que quieres es extraer las partes de código php de lo que es html, utiliza inlcudes, pero realmente teniendo un poco de orden y un ficherito php con funciones más usadas, no deberías tener mucho lío. Todo está en programar con cierto orden.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #10 (permalink)  
Antiguo 22/07/2011, 07:50
 
Fecha de Ingreso: septiembre-2008
Mensajes: 148
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Ejecutar codigo (dinamico) PHP de una variable

Cita:
Iniciado por pateketrueke Ver Mensaje
Amigo, es que no puedes cortar un archivo y esperar que funcione como si fuera uno solo.
Como que no??? si en lugar de
$pagina=mifuncion("modelo.php").mifuncion("header. html").mifuncion("vista.php").mifuncion("footer.ht ml");

tuviera
include("modelo.php");
include("header. html");
include("vista.php");
include("footer.ht ml");

Funcionaria, en realidad volvi a poner los 4 en 1 por medio de includes y me di cuenta que tenia un par de errores debido a que las uri habian cambiado jejeje. Despues de solucionar eso y un par de detalles mas funciono con includes y funciono con eval.

Etiquetas: codigo+dinamico
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 14:58.