2015-11-26 8 views
9

Ho reinstallato Apache e sono passato da PHP 5.3 a 5.6. Tutto funziona, tranne che ottengo questo errore, quando si chiama ob_start():Impossibile utilizzare il buffer di output nei gestori di visualizzazione buffer di output

Cannot use output buffering in output buffering display handlers 

ho cercato di attivare il buffer di uscita in PHP, ma ho ancora ottenere questo errore:

output_buffering = 4096 
+0

hai riavviato il server web? – Calimero

+0

ovviamente. Molte volte –

+0

Qual'è il limite di memoria nel php.ini usato, penso che se lo si imposta su un valore più alto funzionerà. – Wolfeh

risposta

1

Probabilmente si sta utilizzando una funzione di buffering nel richiamo del buffer di output che non è possibile come menzionato nella documentazione di php ob_start output_callback. In caso contrario, dovrebbe essere il gestore di output che hai usato, controlla php.ini e prova a impostare il valore su "none", se possibile.

1

forse questo codice di esempio può aiutare a:

ob_start(); 
echo "test"; 
$content = ob_get_contents(); 
ob_end_clean(); 
var_dump($content); 
4

Si sta cercando di avviare un buffer di uscita all'interno di un callback di buffer. Se usi questo codice, genererà quell'errore. Ma se si rimuove il ob_start() dalla funzione di callback è OK.

<?php 
error_reporting(-1); 

function callback($buffer){ 
    //you can't call ob_start here 
    ob_start(); 
    return (str_replace("apples", "oranges", $buffer)); 
} 

ob_start("callback"); 

?> 
<html> 
<body> 
<p>It's like comparing apples to oranges.</p> 
</body> 
</html> 
<?php 
ob_end_flush(); 
Problemi correlati