2015-11-26 8 views
9

Ich habe Apache neu installiert und von PHP 5.3 auf 5.6 gewechselt. Alles funktioniert, außer ich diese Fehlermeldung erhalten, wenn Sie anrufen ob_start():Ausgabepufferung in Ausgabepuffer-Anzeigeprozeduren kann nicht verwendet werden

Cannot use output buffering in output buffering display handlers 

Ich habe versucht, die Ausgabe-Pufferung in PHP zu aktivieren, aber ich habe immer noch diese Fehlermeldung:

output_buffering = 4096 
+0

haben Sie den Webserver neu gestartet? – Calimero

+0

natürlich. Viele Male –

+0

Was ist das Speicherlimit in der verwendeten php.ini, ich denke, wenn Sie es auf einen höheren Wert setzen, wird es funktionieren. – Wolfeh

Antwort

1

Wahrscheinlich Sie eine Pufferfunktion verwenden in output buffering Callback, was nicht möglich ist, wie in php ob_start output_callback Dokumentation erwähnt. Wenn nicht, sollte es der von Ihnen verwendete Output-Handler sein, überprüfen Sie Ihre php.ini und versuchen Sie, wenn möglich, den Wert auf "none" zu setzen.

1

vielleicht dieses Codebeispiel können Sie helfen:

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

Sie versuchen, einen Ausgangspuffer in einem Puffer Rückruf zu starten. Wenn Sie diesen Code verwenden, wird dieser Fehler generiert. Aber wenn Sie die ob_start() aus der Callback-Funktion entfernen, ist es in Ordnung.

<?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(); 
Verwandte Themen