php 需要抛出 503 状态码

php require throw 503 status code

我正在使用如下要求的功能:

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

如果任何 require 找不到它的目标,是否可以抛出 503 代码?如何抛出? 也可以在我不希望出现 503 错误的地方抛出正常异常吗?

因为 HTTP 服务器响应代码是在 headers 中发送的,您必须在 将任何负载发送到客户端之前 确定它。

因此您可以使用输出缓冲或首先循环遍历所需文件以检查可读性,然后在缺少某个资源时使用 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;
}