0

PHPの致命的なエラーが発生した場合(AJAXリクエストを処理するため)、HTTPステータスヘッダーを500に設定する方法を見つけようとしていました。

関連する質問:致命的な例外が発生したときに php が 500 を返すようにするにはどうすればよいですか?

register_shutdown_functionの意見では、これはエレガントなソリューションではありません。

以下のコードは良い解決策ですか?

致命的なエラーに対して常に機能しますか?

echoアプリケーションコードは最後の呼び出しまで出力がなく、関数への呼び出しはないと仮定しますflush()(呼び出し後、ヘッダーの変更を防ぎます)。

<?php

set_status_code(500);

// ...
// (application code with no output)

// Application didn't crash up to this point,
// so we set http status code 200.
set_status_code(200);

echo $outputBuffer;

flush()望ましい動作を妨げる唯一の機能はありますか?

4

1 に答える 1

0

PHPエラーをオフにすると、致命的なPHPエラーが発生するたびにApacheは500のステータスコードを返します。

于 2012-11-30T11:44:49.100 に答える