Foros del Web » Programando para Internet » PHP »

interpertar código en variable

Estas en el tema de interpertar código en variable en el foro de PHP en Foros del Web. Hola foro, tengo un CMS al cual le quiero hacer includes en una variable. Hasta ahora he podido hacer el include directamente, pero me ha ...
  #1 (permalink)  
Antiguo 25/02/2019, 04:29
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 645
Antigüedad: 15 años, 11 meses
Puntos: 2
interpertar código en variable

Hola foro, tengo un CMS al cual le quiero hacer includes en una variable.

Hasta ahora he podido hacer el include directamente, pero me ha surgido la necesidad de coger el código externo e interpretarlo. En el texto de la web incluyo {include=mi_include.php} para meter ahí código adicional dentro de la plantilla.

mi_include.php
Código PHP:
<?
for($i=1;$i<10;$i++)
{
   
$var=$i;
   if(
$i==)
     
$var='<b>'.$i.'</b>';
   echo 
$var.' ';
}
?>
<div class="variables">El resultado es el de arriba</div>
mi_codigo.php
Código PHP:
if(strpos($item['contenido'], '{include='))
        {
            list(
$corte1,$corte2)=explode('{include=',$item['contenido']);
            
$fin=strpos($corte2,'}');
            
$file=substr($corte2,0,$fin);
            
$corte2=substr($corte2,$fin+1,strlen($corte2));
            
            
ob_start();
            require(
$_SERVER['DOCUMENT_ROOT'].'/includes/'.$file);
            
$include=ob_get_clean();
            
$item['contenido']=$corte1.$include.$corte2;
        } 
de esta forma me pinte el div, pero no los echo que tiene encima...

también he probado ha hacer un file_get_content del archivo, meterlo en una variable con eval() pero el resultado es similar, no me hace el echo...

¿al guna idea? Muchas gracias!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #2 (permalink)  
Antiguo 29/03/2019, 11:08
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 645
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: interpertar código en variable

Bueno, he encontrado la solución en stackoverflow.com

Gracias a quien leyó por intentarlo!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #3 (permalink)  
Antiguo 29/03/2019, 13:12
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.463
Antigüedad: 11 años, 6 meses
Puntos: 1072
Respuesta: interpertar código en variable

Malisima idea utilizar eval(), es una función poco recomendable por lo insegura que es.

Una alternativa que quizás podría adaptar es el uso de
https://www.php.net/manual/es/functi...e-callback.php

Aquí te dejo un ejemplo de como utilizarlo en plantillas.

Código PHP:
Ver original
  1. <?php
  2. $s = array(
  3.     'nombre' => 'Norberto Ramirez',
  4.     'email' => '[email protected]',
  5.     'direccion' => 'No me olvides #529, SLP'
  6. );
  7.  
  8. $texto = 'Hola {nombre}, te he visitado en "{direccion}", pero ya que no te he encontrado contactame a {email}';
  9.  
  10. var_dump($texto);
  11.  
  12. echo '<br><br><br>';
  13.  
  14. $parsed = preg_replace_callback('/{(.+?)}/', function($matches) use ($s){
  15.     list($shortCode, $index) = $matches;
  16.     return isset($s[trim($index)]) ? $s[trim($index)] : '';
  17. }, $texto);
  18.  
  19. var_dump($parsed);
  #4 (permalink)  
Antiguo 11/06/2019, 10:23
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 645
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: interpertar código en variable

Hola Arturo, gracias por tu comentario.... pero lo queyo quiero es poder ejecutar un código de un archivo externo he incrustarlo en mi código convencional... ese código externo utiliza variables previas del site, querys y ofrece resultados según éste...

Indagaré en lo que comentas, pero a primera vista no creo que ayude en lo que estoy buscando...

Mil gracias!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #5 (permalink)  
Antiguo 14/06/2019, 06:31
Avatar de vb2005  
Fecha de Ingreso: noviembre-2005
Ubicación: Paderborn - Alemania
Mensajes: 546
Antigüedad: 13 años, 9 meses
Puntos: 23
Respuesta: interpertar código en variable

Acompaño a ArturoGallegos aqui, el uso de eval() es muy riesgoso
__________________
www.marcher.com.uy - Web personal
Nerd's Corner - Desarrollo de software a medida



La zona horaria es GMT -6. Ahora son las 15:47.