2

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

我宁愿不在标头方法周围使用包装函数(或对象),或者在发送状态代码时设置一些全局变量。由于性能问题,我也宁愿不使用 curl 等从自身调用我的代码。请让我知道你的想法。

4

3 回答 3

2

考虑设置一个常数:

define('HTTP_STATUS', 403);

defined稍后使用该功能:

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

实际上,查看标头本身就是一种 hack,因为它太慢了:您正在处理字符串和数组以及各种其他杂乱的数据。为自己设置一个简单的常量:它非常快,它做同样的事情,而且它不会创建任何“真正的”全局变量。

于 2010-01-10T23:20:53.550 回答
1

http_response_code()在 PHP 5.4 中现在可以做到这一点。

于 2011-08-30T22:03:23.220 回答
0

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

于 2010-01-08T22:13:22.293 回答