Home > Backend Development > PHP Tutorial > PHP gets the original text of the HTTP request_PHP tutorial

PHP gets the original text of the HTTP request_PHP tutorial

WBOY
Release: 2016-07-21 14:53:47
Original
799 people have browsed it

1. Get the request line: Method, URI, protocol

can be obtained from the super variable $_SERVER. The values ​​of the three variables are as follows:

$_SERVER['REQUEST_METHOD']. ' '.$_SERVER['REQUEST_URI'].' '.$_SERVER['SERVER_PROTOCOL']."rn";
2. Get all Headers

PHP has a built-in function getallheader(), which is An alias of the apache_request_headers() function that can return all headers of the HTTP request in the form of an array. But this function can only work under Apache. If you change to Nginx or the command line, an error that the function does not exist will be reported directly.

A more general method is to extract it from the super variable $_SERVER. The key values ​​​​of the headers all start with "HTTP_". You can obtain all the headers based on this feature. The code is as follows:

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

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

$headers [$key] = $value;
}
}

return $headers;
}
3. Get Body

Officially provides a get request Body method, namely:

file_get_contents('php://input')
4. Final code

/**
* Get the original text of the HTTP request
* @return string
*/
function get_http_raw() {
$raw = '';

// (1) Request line
$raw .= $_SERVER['REQUEST_METHOD'].' '.$_SERVER['REQUEST_URI'].' '.$_SERVER['SERVER_PROTOCOL']."rn";

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

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

// (3) Blank line
$raw .= "rn";

// (4) Request Body
$raw .= file_get_contents('php://input');

return $raw;
}

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/364740.htmlTechArticle1. Get the request line: Method, URI, and protocol can be obtained from the super variable $_SERVER. The three variables The values ​​are as follows: $_SERVER['REQUEST_METHOD'].' '.$_SERVER['REQUEST_URI'].' '.$_SERVER['...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template