SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: Kyrylys en Domingo 24 de Junio de 2007, 20:49

Título: Leer Documento En Php Dentro De Php
Publicado por: Kyrylys en Domingo 24 de Junio de 2007, 20:49
Hola buenas, espero que me podais ayudar con un problemilla que tengo.

Necesito saber qué función utilizar para "leer" un documento en php cuando se llama dentro de un documento php; me explico:

he creado una clase PANEl para construir  paneles que cada uno recibe como parámetro un array con su contenido.
si lo llamo con file_gets_content  ejecuta unicamente el código que está en html puro, ahora bien necesitaria que antes de ejecutar esta función se haya interpretado el php que pudiese acompañar al html.

ejemplo:
este es un ejemplo del documento que iria dentro del panel.
pag1.php

Código: Text
  1. <?php  for($i=0;$i<10;$i++) echo($i); ?>
  2. <h1>Prueba</h1>
  3.  

panel.php

Código: Text
  1.  
  2. <?php
  3.  
  4. $pan=new PANEL(file_gets_contents("pag1.php"));
  5. $pan->Draw();
  6.  
  7. ?>
  8.  
  9.  

el resultado dentro del panel es <h1>Prueba</h1> y me gustaria que fuese interpretado también el php

espero haberme explicado bien ^^
Como siempre muchas gracias por vuestro tiempo y un saludo.
Título: Re: Leer Documento En Php Dentro De Php
Publicado por: F_Tanori en Domingo 24 de Junio de 2007, 21:53
Hola

Prueba de esta manera....

Código: Text
  1. &#60;?php
  2.  
  3. &#036;content=file_get_contents(&#34;pag1.php&#34;);
  4. &#036;match = array('#&#60;&#092;?php(.*?)&#092;?&#62;#se');
  5. &#036;replace= array(&#34;eval(stripslashes('&#036;1'))&#34;);
  6. &#036;content=preg_replace(&#036;match, &#036;replace, &#036;content);
  7.  
  8. &#036;pan=new PANEL(&#036;content);
  9. &#036;pan-&#62;Draw();
  10.  
  11. ?&#62;
  12.  
  13.  




Saludos
Título: Re: Leer Documento En Php Dentro De Php
Publicado por: Kyrylys en Lunes 25 de Junio de 2007, 17:40
Muchas gracias, al final mirando un poco mas y con un poco de ayuda lo arregle mediante flujos, me hice una función la cual "parsea" todo el contenido del documento y lo devuelve como un string

Código: Text
  1.  
  2. function ParsePHPFile(&#036;file)
  3. {
  4. ob_start();
  5. require &#036;file;
  6. &#036;content = ob_get_contents();
  7. ob_end_clean();
  8. return &#036;content;
  9. }
  10.  
  11.  

luego sólo hay que llamar a la función antes de hacer el draw, asi:

Código: Text
  1.  
  2. &#036;news= new PANEL;
  3. &#036;news-&#62;setContent(ParsePHPFile(&#34;documentos/noticias.php&#34;));
  4. &#036;news-&#62;Draw();
  5.  
  6.  

F_Tanori veo que usas eval, también me topé con ello, pero a la hora de la verdad no notaba que hiciese nada, me podrías explicar un poco mas detallado que hace eval?

Muchas gracias por la molestia ^^
Título: Re: Leer Documento En Php Dentro De Php
Publicado por: F_Tanori en Lunes 25 de Junio de 2007, 21:33
Hola

Mira aqui viene claro y entendible


http://de.php.net/eval (http://de.php.net/eval)


Saludos