0

私はいくつかの出力をバッファリングするサイトを持っています

ob_start();
... 

今日までは問題なく動作しました。debianを古いphp5.3から最新のphp5.3.3-7に更新しました。 +squeeze8
初めて呼び出す前に、出力バッファに何かがあることがあります。

次のようなことには答えないでください

「出力を送信する前にヘッダーを呼び出す必要があります。」(私は知っています、私は出力バッファーでたくさん働きます)

追加のob_get_clean();を設定したとき。スクリプトの最初の行で、それは機能します

<?
ob_get_clean();

最初の行を入力すると、phpが事前に出力を作成しているようです

<? print_r(ob_get_clean()); ?>

次に、バッファにすでに空の文字列があることがわかります。

""

他のすべてのページにはありません、ob_get_clean(); 含む

ヌル

4

4 に答える 4

0

<?phpどこかの前に「」がある可能性はありますか?または間違ったファイルエンコーディングは、通常、そのような性質の問題を引き起こし、ファイルをチェックしてファイルを含めます。

于 2012-04-09T11:35:53.303 に答える
0

今、私は時々それを最初に呼び出す前に出力バッファに何かを持っています

その不思議なデータについての情報を教えていただければ、はるかに簡単になります。

于 2012-04-09T11:36:45.537 に答える
0

おそらくBOM文字の場合ですか?詳細はこちら

于 2012-04-09T11:40:32.820 に答える
0

見つけた:

私は前に目に見えない文字がありませんでした、それは何か違うものでした:私は一度ob_end_clean()を呼び出しすぎました:

これは私のコードで、私が呼び出す関数内にあります。

function print_something(){
ob_start();

echo some stuff...

echo ob_get_clean();
ob_end_clean(); // this was the bug! 
}

メインの出力バッファをクリアできるようです;)

于 2012-04-14T01:06:11.107 に答える