2015-11-26 8 views
9

Apacheを再インストールし、PHP 5.3から5.6に切り替えました。出力バッファリング表示ハンドラで出力バッファリングを使用できません

Cannot use output buffering in output buffering display handlers 

私はPHPで出力バッファリングを有効にしようとしたが、私はまだ、このエラーが出る:

output_buffering = 4096 
+0

ウェブサーバーを再起動しましたか?もちろん – Calimero

+0

。多くの場合 –

+0

使用されているphp.iniのメモリの制限は何ですか?私はあなたがそれをより高い値に設定すれば動作すると思います。 – Wolfeh

答えて

1

おそらくあなたは、バッファ機能を使用している私は、このエラーを取得する以外ob_start()を呼び出すときにすべてが、動作しますphp ob_start output_callbackのマニュアルに記載されているように出力バッファリングコールバックでは不可能です。そうでない場合は、使用していた出力ハンドラである必要があります。php.iniを確認し、可能であればその値を "none"に設定してください。

1

多分、このサンプルコードでは、あなたを助けることができます:あなたは、バッファコールバック内部の出力バッファを開始しようとしている

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

。このコードを使用すると、そのエラーが生成されます。しかし、ob_start()をコールバック関数から削除しても問題ありません。

<?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(); 
関連する問題