目的
为什么要获取原始的http请求的头部和body呢?php内置对象$_SERVER,$_POST,$_GET,$_COOKIE等不就是为了简化处理原始头部而抽象出来的对象吗?
一般的应用场景而言,的确不需要原始头部信息,但是如果需要定位bug(如cookie异常丢失),或者分析用户的行为,如主流用户的客户端版本(IE,FF,Chrome或其他),那么获取原始的请求有助于数据分析。下面介绍两种方法,作为备忘,方法1本人已经实验证明可行。
方法1
- apache_request_headers,此函数返回headers的关联数组,必须在apahce下
- @file_get_contents('php://input'),此方法返回body。
方法2
采用pecl_http扩展中的相关api,这个扩展不在php自带的扩展中,需要另行下载
- http_get_request_headers,返回值与apache_request_headers一样
- http_get_request_body或http_get_request_body_stream,具体用法参见php手册
本文转自bourneli博客园博客,原文链接:http://www.cnblogs.com/bourneli/archive/2012/12/14/2818655.html,如需转载请自行联系原作者