php需要抛出503状态代码

时间:2017-05-02 22:05:39

标签: php html error-handling require

我正在使用以下的require函数:

<?php 
    require("../require/head.php"); 
    require("../require/header.php");
    require("content.php");
    require("../require/footer.php"); 
?>

如果有任何需求找不到目标,可以抛出503代码吗? 还有可能在我不想要503错误的情况下抛出正常异常吗?

1 个答案:

答案 0 :(得分:1)

由于HTTP服务器响应代码是在标头中发送的,因此您必须在将任何有效负载发送到客户端之前确定此

因此,您可以使用输出缓冲或首先循环检查可读性所需的文件,然后使用http_response_code发送503,如果缺少其中一个资源。

<?php

$files = [
    "../require/head.php",
    "../require/header.php",
    "content.php",
    "../require/footer.php",
];

foreach ($files as $file) {
    if (!is_readable($file)) {
        // return 503
        http_response_code(503);
        die();

        // or you could throw an exception
        throw new Exception("Missing file: $file");
    }
}

foreach ($files as $file) {
    require $file;
}