代码之家  ›  专栏  ›  技术社区  ›  Iiridayn

PHP能检测到它已经或准备发送到浏览器的状态代码吗?

  •  2
  • Iiridayn  · 技术社区  · 16 年前

    我正在通过header函数发送状态代码,例如 header('HTTP/1.1 403'); ,并希望在我的代码的另一个区域中检测要发送的状态代码(特别是如果我发送了某种性质的错误代码)。如前所述 elsewhere , headers_list() 不会返回这个特定的项目,我也不清楚它是否真的算作一个标题,因为Firebug和Fiddler2都不会用标题来处理它。那么-PHP脚本如何检测将要发送到浏览器的状态代码?

    我不希望在header方法周围使用包装函数(或对象),或者在发送状态代码时设置一些全局变量。出于性能方面的考虑,我也不想使用curl等从自身调用代码。请告诉我你的想法。

    3 回复  |  直到 13 年前
        1
  •  2
  •   mattbasta    16 年前

    考虑设置常量:

    define('HTTP_STATUS', 403);
    

    并使用 defined 稍后的功能:

    if(defined('HTTP_STATUS') && HTTP_STATUS == 403) // ...or whatever you're looking to do
    

    实际上,回过头来查看头部本身就是一种黑客行为,因为它太慢了:您处理的是字符串、数组和各种各样的杂乱数据。为你自己设定一个简单的常量:它燃烧得很快,它做同样的事情,它不会创建任何“真”的全局变量。

        2
  •  1
  •   Iiridayn    13 年前

    http_response_code() 在php 5.4中,现在就这样做。

        3
  •  0
  •   easement    16 年前

    这是另一个电话,但作为最后的手段,你可以用这个而不是卷发。如果您有php 5.0,那么 get_headers() 是吗?

    推荐文章