PHP獲取原始http請求headers和body


目的

為什么要獲取原始的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。

參考這里:http://stackoverflow.com/a/10751214

 

方法2

采用pecl_http擴展中的相關api,這個擴展不在php自帶的擴展中,需要另行下載

  • http_get_request_headers,返回值與apache_request_headers一樣
  • http_get_request_body或http_get_request_body_stream,具體用法參見php手冊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM