4

私は非常に長い間 PHP を使用してきましたが、何らかの理由で新しいサーバーに移行すると、ホワイト スクリーン オブ デスが発生しました。明らかに、バージョンの違いが原因である必要があります。私は何年も同じ出力バッファ パターンを使用してきました。

通常...

ob_start();
?>
    //HTML...
<?php
$output = ob_get_clean();
ob_flush();

return $output;

最近、HTMLセクションを返し、ビュー間でそれらを渡しているときに、PHPの通常/新しいバージョン(私のWAMPでは5.4以降だと思います)でいくつかの問題を発見しました(私はMVCを使用しています)。それらは完全に画面に表示され、バッファにはまったく保存されていませんでした。ob_start()バッファを削除できることを知らせるために必要なフラグが必要であることがわかりました。

そのようですob_start(null, 0, PHP_OUTPUT_HANDLER_REMOVABLE);

ただし、私のページがライブであり、WAMP ではないため、ページ全体が壊れて完全な白い画面が表示されるようになりました。すべてのエラー報告をオンにしましたが、まだ何もありません。ログなどには何も表示されません。そのためecho "test"; die;、どの行で壊れているかを確認するために一連の大規模な一連の作業を行い、ビュー間で完成した HTML ブロックを渡すバッファリングされたセクションを削除すると、すべてがうまくいっていることを確認しました。

セクションを適切に返す方法を理解する必要があります。

4

1 に答える 1

1

ob_get_clean() はすでに出力バッファを閉じているため、この状況では ob_flush() は必要ありません。

于 2014-11-25T12:17:23.733 に答える