2011-10-16 12 views
9

E 'possibile fare comeAssegnazione di contenuti a una variabile con includono/require_once

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

in modo che qualsiasi output HTML che lol.php non andrà dentro $var?

Conosco il buffer di output, ma c'è qualche funzione speciale incorporata che già lo fa?

+0

Se si pensa * * avete bisogno di fare questo, si dovrebbe probabilmente solo correggere il file incluso. Moduli (al contrario di semplici e stupidi modelli) che afferrano 'stdout' e lo trattano come se fossero rotti. – delnan

+0

Puoi rendere il contenuto di 'lol.php' restituire un array o un oggetto. – yoda

+0

sfortunatamente non ho il controllo su lol.php ... – Alex

risposta

19

$var = require_once('lol.php'); inserisce il valore restituito del file in $var. Se non si restituisce nulla da esso, sarà solo null.

Se si desidera che l'uscita è necessario utilizzare il buffer di uscita:

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

L'assegnazione da un =include() chiamata sarà solo ottenere un possibile valore return da quel copione, senza alcun output.

Per rendere questo possibile, si dovrà modificare lo script includere per catturare l'output:

<?php 
     ob_start(); 

     ... 

     return ob_get_clean(); 
?> 
Problemi correlati