0

suPHPを使用する共有ホスト上にスクリプトがあります。バッファリングされていない出力が必要です(長いサブルーチンを開始する前にフラッシュできます)が、それを機能させる方法が見つからないため、フラッシュ呼び出しは基本的に無視されます。.htaccessを微調整してみました(500の内部エラーが発生します)。特定のスクリプトのアカウントレベルとフォルダーレベルでphp.iniを変更しようとしました(どちらも完全に無視されているようですが、たとえば、engine=Offまたはsuphp_engine=Offでphpエンジンを無効にすることはできません。

バッファリングを無効にするにはどうすればよいですか(ホスティングプロバイダーに問い合わせる必要があるかもしれませんが、具体的に何を変更するように依頼しますか)?suPHPでも可能ですか?

4

2 に答える 2

1

ホスティングサポートともう少し話し合った後、ようやくphp.iniが認識されるようになりましたが、バッファサイズを無効にしたり変更したりしても効果はありません。文書化はかなり不十分ですが(私が知る限り、phpの公式ドキュメントに1つのコメントがあります)、suPHPは内部のphpバッファーの後にすべての出力をバッファリングしているようです。したがって、フラッシュは機能しています...しかし、すべての出力はsuPHPによって再びバッファリングされており、それを回避する方法はありません。したがって、suPHPを使用している場合は、オフにできない2番目のバッファーの背後でスタックし、最終的にはフラッシュは効果がありません。バッファリングなどの他のバッファコマンドを使用して、スクリプトを介してヘッダーをさらに送信し、フローを制御できますが、suPHPの背後にある合計出力は、出力される前にバッファを通過します。

于 2011-04-15T16:31:40.073 に答える
0

を実行するとどうなりますflush()か? エラーが表示されますか、それとも単に出力がありませんか? キャッシュが Web サーバー レベルで発生している場合、フラッシュを有効にするためにバッファを埋める必要がある場合があります。フラッシュの前に大量の空白を送信してみて、より効果的かどうかを確認してください。

于 2011-04-14T16:14:03.993 に答える