在PHP中发送HTTP响应代码的最佳方式

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了在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}");
    // ...

脚本宝典总结

以上是脚本宝典为你收集整理的在PHP中发送HTTP响应代码的最佳方式全部内容,希望文章能够帮你解决在PHP中发送HTTP响应代码的最佳方式所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。