PHP HTTPリクエスト元の取得

1.取得要求ライン:メソッド、URI、プロトコル

次の3つの変数の値は、スーパー変数$ _SERVERから入手できます。

$ _SERVER [ 'REQUEST_METHOD']。」」。$ _SERVER [ 'REQUEST_URI']。」」。$ _SERVER [ 'SERVER_PROTOCOL'] "\ rを\ n"は。

 

2.すべてのヘッダを取得します

PHP)は、(組み込み関数のgetallheaderを有している、は、apache_request_headers()関数であり、すべてのヘッダHTTP要求が配列として返されることがあり、別名です。ただし、この機能はApacheのみ、nginxの中で働くことができるか、コマンドラインであれば、直接存在しない誤差関数に報告されます。

より一般的な方法は、超変数$ _SERVERから抽出​​され、キーは、関連するヘッダー「HTTP_」の始まりである、あなたは、この機能に応じて、すべてのヘッダを取得することができます。

具体的なコードは次のよう:

関数get_all_headers(){ 
  $ヘッダー = 配列(); 
 
  foreachの$ _SERVER  として $キー => $値){ 
    場合SUBSTR$キー、0、5)=== 'HTTP_' ){ 
    $キー =のSUBSTR$キー、5 )。 
    $キー = strtolower$キー)。 
    $キー = str_replace( '_'、 ''、$キー)。 
    $キー = ucwords$キー)。 
    $キー = str_replace(」」、 ' - '、$キー)。
 
    $ヘッダー [ $キー ] = $値
    } 
  } 
 
  を返す $ヘッダを
}

 

3.ボディ製

それはつまり、公式のリクエストボディを得るための方法を提供します。

file_get_contents( 'PHP://入力')

 

4.最後の完全なコードは次のよう:

/ * * 
*获取HTTP请求原文
* @return列
* / 
関数get_http_raw(){ 
 $生 = '' ; 
 
// (1)请求行
$生。= $ _SERVER [ 'REQUEST_METHOD']。」」。$ _SERVER [ 'REQUEST_URI']。」」。$ _SERVER [ 'SERVER_PROTOCOL'] "\ rを\ n"は。; 
 
// (2)请求ヘッダ
foreachの$ _SERVER  として $キー => $値){ 
 場合SUBSTR$キー、0、5)=== 'HTTP_'、5 )。 
$キー = str_replace( '_'、 ' - '、$キー)。
 
$生。= $キー。 ':'。$値。 "\ rを\ n"は
} 
} 
 
// (3)空行
$生 = "\ R \ n"。; 
 
// (4)请求ボディ
$生 =。のfile_get_contents( 'PHP://入力' ); 
 
返す $生を
}

 

おすすめ

転載: www.cnblogs.com/tkzc2013/p/10931328.html