Foros del Web » Programando para Internet » PHP »

Pasar contenido de un script a una variable

Estas en el tema de Pasar contenido de un script a una variable en el foro de PHP en Foros del Web. Hola gente. A ver si me podéis echar una manita con esto: Tengo una plantilla 'miPlantilla.php': @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código php: Ver original <p> <?php echo ...
  #1 (permalink)  
Antiguo 11/12/2008, 02:56
 
Fecha de Ingreso: diciembre-2003
Ubicación: Salamanca
Mensajes: 123
Antigüedad: 20 años, 4 meses
Puntos: 3
Pasar contenido de un script a una variable

Hola gente.
A ver si me podéis echar una manita con esto:

Tengo una plantilla 'miPlantilla.php':

Código php:
Ver original
  1. <p><?php echo 'un p&aacute;rrafo'?></p>

...y quiero incluirla en la plantilla general 'plantillaGeneral.php':
Código php:
Ver original
  1. <html>
  2. <head><?php echo $titulo ?></head>
  3. <body>
  4. <?php echo $contenido?>
  5. </body>
  6. </html>

...pero sólo si la configuración de 'miPlantilla.php' (miPlantilla.config) lo pide.
El CMV Symfony (de donde he sacado esto) hace lo siguiente (un resumen):

'index.php':
Código php:
Ver original
  1. $titulo= 'El t&iacute;tulo.';
  2. $contenido= include('miPlantilla.php');

Cuando obtengo el contenido de 'miPlantilla' escribe script (a mí me parece lo lógico), con lo que el contenido aparece antes que que la plantilla general y la variable '$contenido' de 'plantillaGeneral.php' no contiene nada

¿Esto que quiero es posible o el ejemplo de Symfony no es más que un ejemplo?

Código original:
Código php:
Ver original
  1. //Symfony 1.1 Guía Definitiva
  2. //2.1.2.2 'Los elementos de la vista.' pág.24
  3.  
  4. //1 Controlador (index.php)
  5.    require('vista.php');  
  6.  
  7. //1.2 Parte de la vista en miPlantilla.php
  8.     <h1>Lista artículos</h1>
  9.     <ul>
  10.         <?php foreach($articulos as $articulo): ?>
  11.         <li><?php echo $articulo['fecha'] ?></li>
  12.         <li><?php echo $articulo['titulo'] ?></li>
  13.         <?php endforeach; ?>
  14.     </ul>
  15.  
  16. //1.2 Parte de la lógica (vista.php)
  17.     <?php
  18.         $titulo= 'Listado de artículos';
  19.         $contenido= include('miPlantilla.php');
  20.     ?>
  21.  
  22. //1.3 Layout de la vista
  23.     <html>
  24.     <head>
  25.         <title><?php echo $titulo ?></title>
  26.     </head>
  27.     <body>
  28.     <?php echo $contenido ?>
  29.     </body>
  30.     </html>

Última edición por dobeto; 11/12/2008 a las 03:00 Razón: Rectificación código
  #2 (permalink)  
Antiguo 11/12/2008, 03:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pasar contenido de un script a una variable

tal ves te interese esto...

Devolver valores en includes de PHP
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 11/12/2008, 06:39
 
Fecha de Ingreso: diciembre-2003
Ubicación: Salamanca
Mensajes: 123
Antigüedad: 20 años, 4 meses
Puntos: 3
Respuesta: Pasar contenido de un script a una variable

Uhmmmmmmmmmmmmmmm......... no me vale
Muchas gracias de todos modos.

Con return devuelves la variable, pero lo que busco es pasar el HTML de un documento cualquiera, sin necesidad de usar PHP en el documento.
Podría usar file_get_content() pero en ese caso no ejecutaría los scripts en PHP.

Gracias de nuevo.
Seguiré buscando.
  #4 (permalink)  
Antiguo 11/12/2008, 07:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pasar contenido de un script a una variable

mm, tal ves necesites usar los buffers...

Código PHP:
function incluye($inc$vars = array())
{
  if (
is_file($inc))
  {
    
ob_start();

    
extract($vars);
    include 
$inc;

    
$out ob_get_contents();
    
ob_end_clean();

    return 
$out;
  }

lo que hace esta función improvisada, es cargar un include con variables en su contexto, es mas o menos lo que se usa en MVC ...

test.php
Código PHP:
$data = array(
  
'title' => 'Titulo?',
  
'body' => 'Hola mundo!'
);

$html incluye('plantilla.htm'$data);
// echo $html; 

plantilla.htm
Código HTML:
<html>
  <head>
    <title><?php echo $title; ?></title>
  </head>
  <body>
    <?php echo $body; ?>
  </body>
</html> 
espero te alivie, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 12/12/2008, 02:20
 
Fecha de Ingreso: diciembre-2003
Ubicación: Salamanca
Mensajes: 123
Antigüedad: 20 años, 4 meses
Puntos: 3
Respuesta: Pasar contenido de un script a una variable

Bien!!!
Muchas gracias por la pista.

Me ha bastado con impedir la salida de datos y recoger los datos del buffer.
Queda así de sencillo:
Código PHP:
      $titulo'El t&iacute;tulo.';
      
ob_start();
      include 
'miPlantilla.*';
      
$contenidoob_get_content();
      
od_end_flush(); 
Muchas gracias de nuevo.
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




La zona horaria es GMT -6. Ahora son las 02:18.