设置 PHP 中编译错误的响应代码[重复]

问题描述 投票:0回答:1

PHP 版本 7.2

如果脚本解析失败,我希望 php 端点返回代码 500。目前,我收到带有响应正文的代码 200:

<br/>
<b>Parse error</b>
:  syntax error, unexpected 'felkdfle' (T_STRING), expecting function (T_FUNCTION) or const (T_CONST) in <b>/var/www/html/api/logs.php</b>
on line <b>9</b>
<br/>

前端不会将此视为错误,因为响应表示成功。

我试过这个:

// does not work because parse errors can not be caught within the script
function exception_handler(Throwable $exception) {
    http_response_code(500);
    echo "Uncaught exception: " , $exception->getMessage(), "\n";
}
set_exception_handler('exception_handler');

// also does not work
function fatal_handler() {
    http_response_code(500);
    $error = error_get_last();
    echo $error;
}
register_shutdown_function('fatal_handler');

那么如何设置 php 在解析错误后用于响应的响应代码?

php http error-handling httpresponse
1个回答
0
投票

这是我们正在使用的 PHP 7.2 版本中的一个错误。我在本地机器上验证了它,新版本8.4返回500但旧版本7.2返回200

© www.soinside.com 2019 - 2024. All rights reserved.