ホームページ  >  記事  >  バックエンド開発  >  PHP は HTTP リクエストの元のテキストを取得します_PHP チュートリアル

PHP は HTTP リクエストの元のテキストを取得します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 14:53:47713ブラウズ

1. リクエスト行を取得します: メソッド、URI、プロトコル

はスーパー変数 $_SERVER から取得できます。 3 つの変数の値は次のとおりです:

$_SERVER['REQUEST_METHOD']。 $_SERVER['REQUEST_URI'] .' '.$_SERVER['SERVER_PROTOCOL']."rn";
2. すべてのヘッダーを取得する

PHP には apache_request_headers( ) 関数を使用すると、HTTP リクエストのすべてのヘッダーを配列形式で返されます。ただし、この機能は Apache でのみ動作します。Nginx またはコマンド ラインに変更すると、機能が存在しないというエラーが直接報告されます。

より一般的な方法は、スーパー変数 $_SERVER から抽出することです。ヘッダーのキー値はすべて「HTTP_」で始まり、この機能に基づいて取得できます。コードは次のとおりです:

function get_all_headers() {
$headers = array();

foreach($_SERVER as $key => $value) {
if(substr($key, 0, 5) = == ' HTTP_') {
$key = substr($key, 5);
$key = str_replace('_', ' ', $key); ucwords($ key);
$key = str_replace(' ', '-', $key);

$headers[$key] = $value;

return $headers;ボディの取得

公式はリクエストのボディを取得するメソッドを提供しています:

file_get_contents('php://input')
4. 最終コード

/**
* HTTP リクエストの元のテキストを取得します
* @return string
*/
function get_http_raw() {
$raw = '';

// (1) リクエスト行
$raw .= $_SERVER['REQUEST_METHOD'].' '.$_SERVER['SERVER_PROTOCOL'] ."rn ";

// (2) リクエストヘッダー
foreach($_SERVER as $key => $value) {
if(substr($key, 0, 5) === 'HTTP_') {
$key = substr($key, 5);
$key = str_replace('_', '-', $key);

$raw .= $key.': '.$value."rn"; }
}

// (3) 空行
$raw .= "rn";

// (4) リクエストボディ
$raw .= file_get_contents('php://input');生
}



http://www.bkjia.com/PHPjc/364740.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/364740.html

技術記事 1. リクエスト行を取得します。メソッド、URI、プロトコルはスーパー変数 $_SERVER から取得できます。3 つの変数の値は次のとおりです: $_SERVER['REQUEST_METHOD'].' REQUEST_URI'].' '.$ _SERVER['...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。