在PHP中发送HTTP响应代码的最佳方式
|
通过阅读 PHP规范和Stack Overflow上的其他问题,我可以看到三种从PHP发送HTTP响应代码的方法: header("HTTP/1.0 404 Not Found");
^ ^ ^
A B C
header(" ",false,404);
^ ^ ^
C D B
http_response_code(404);
^
B
A: Defines HTTP header
B: Response code
C: Message
D: To replace previous header or not
这些和最好使用哪一个有什么区别?我对参数的理解是否正确? 谢谢, Tugzrida. 为了回答你关于有什么区别的问题,我在PHP文档中找到了 this comment(感谢Steven):
我很好奇一些流行的框架如何在标准响应中发送标头: Symfony(和Laravel,继承)设置原始标题: // status
header(sprintf('HTTP/%s %s %s',$this->version,$this->statusCode,$this->statusText),true,$this->statusCode);
Zend Framework 2还设置了原始标题: public function renderStatusLine()
{
$status = sprintf(
'HTTP/%s %d %s',$this->getVersion(),$this->getStatusCode(),$this->getReasonPhrase()
);
return trim($status);
}
Yii也是如此 protected function sendHeaders()
{
if (headers_sent()) {
return;
}
$statusCode = $this->getStatusCode();
header("HTTP/{$this->version} $statusCode {$this->statusText}");
// ... (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
