PHP header()函数,用于在错误日志中创建条目

PHP header()函数,用于在错误日志中创建条目,php,http-response-codes,Php,Http Response Codes,我正在制作一个API 在这里,我必须显示错误处理。如果未获取任何请求,或者该请求不存在于数据库中,或者存在任何其他错误,则该错误应伴随json\u encode字符串,并且HTTP错误代码应出现在响应头中 由于PHP5.3没有http\u response\u code,我使用了一个定制函数,正如第一条注释中所写的那样 问题是,当我像http\u response\u code(405)那样执行此函数时,它不是在头中给出响应代码,而是在php错误日志中创建一个条目 header('HTTP/1.

我正在制作一个API

在这里,我必须显示错误处理。如果未获取任何请求,或者该请求不存在于数据库中,或者存在任何其他错误,则该错误应伴随
json\u encode
字符串,并且HTTP错误代码应出现在响应头中

由于PHP5.3没有
http\u response\u code
,我使用了一个定制函数,正如第一条注释中所写的那样

问题是,当我像
http\u response\u code(405)
那样执行此函数时,它不是在头中给出响应代码,而是在php错误日志中创建一个条目

header('HTTP/1.0 405方法不允许')
是从上述函数内部调用的,该函数生成一个PHP错误日志条目

为什么会发生这种情况?当我使用POSTMAN进行API调用时,为什么在头中没有获得HTTP响应代码

编辑

错误日志中显示的错误


[Tue Jul 14 23:40:07 2015][error][client 127.0.0.1]PHP警告:文件获取内容(localhost/APICall_2.PHP?ip=127.0.0.1):无法打开流:HTTP请求失败!API_2.php第31行不允许使用HTTP/1.0 405方法\r\n


请记住,响应_代码是在服务器端设置的,必须在发送任何正文文本之前设置。server access.log将记录405,但不记录文本

如果在设置响应代码之前允许任何字节进入输出缓冲区,error.log会这样说。您还可以将php.ini配置为创建一个php_error.log文件以协助调试

窗口: error\u log=c:\apache\apache2.4\logs\php\u errors.log

linux
error_log=/apache/apache2.4/logs/php_errors.log

日志中的错误是什么?[Tue Jul 14 23:40:07 2015][error][client 127.0.0.1]php警告:文件获取内容():无法打开流:HTTP请求失败!API_2.php第31行不允许使用HTTP/1.0 405方法\r\n请不要在注释中转储代码。编辑您的原始帖子以添加任何新信息。对我来说,这就像您使用PHP(到PHP)发出请求,获得正确的标题,并且请求失败。当我删除
header()
函数时,我的请求开始获取结果。所以我的请求没有失败。我传递了错误的参数来检查我的错误处理,并使用正确的响应代码返回错误。