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 回答