2011-10-16 17 views
9

¿Es posible hacer comoAsignación de contenido a una variable con include/require_once

$var = require_once('lol.php'); 

de manera que cualquier salida HTML que lol.php no irá en el interior $var?

Sé sobre el buffer de salida, pero ¿hay alguna función especial incorporada que ya lo haga?

+0

Si piensa * * que tiene que hacer esto, usted debe probablemente sólo fijar el archivo incluido. Los módulos (a diferencia de las plantillas sencillas y estúpidas) que toman 'stdout' y lo tratan como suyo están rotos. – delnan

+0

Puede hacer que los contenidos 'lol.php' devuelvan una matriz u objeto. – yoda

+0

lamentablemente no tengo control sobre lol.php ... – Alex

Respuesta

19

$var = require_once('lol.php'); solo colocará el valor de retorno del archivo en $var. Si no devuelve nada, solo será null.

Si desea que la salida tendrá que usar buffers de salida:

ob_start(); 
require_once('lol.php'); 
$var = ob_get_clean(); 
6

La asignación de una llamada =include() sólo le conseguir un posible valor return de ese guión, no cualquier salida.

Para que esto sea posible se tendría que modificar el script incluir capturar la salida:

<?php 
     ob_start(); 

     ... 

     return ob_get_clean(); 
?> 
Cuestiones relacionadas