我正在使用以下的require函数:
<?php
require("../require/head.php");
require("../require/header.php");
require("content.php");
require("../require/footer.php");
?>
如果有任何需求找不到目标,可以抛出503代码吗? 还有可能在我不想要503错误的情况下抛出正常异常吗?
答案 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;
}