Подтвердить что ты не робот

Как я могу заставить PHP отображать заголовки, полученные из браузера?

Все ли они хранятся в $_SERVER? Даже пользовательские?

4b9b3361

Ответ 1

Попробуйте это

print_r ($ _ SERVER)

Он отобразит все в массиве

Ответ 2

Каждое поле заголовка HTTP-запроса находится в $_SERVER (кроме Cookie), а ключ начинается с HTTP_. Если вы используете Apache, вы также можете попробовать apache_request_headers.

Ответ 3

вы можете использовать getallheaders(), чтобы получить массив всех отправленных HTTP-заголовков.

$headers =  getallheaders();
foreach($headers as $key=>$val){
  echo $key . ': ' . $val . '<br>';
}

Ответ 4

Посмотрите на переменную $_ SERVER, чтобы увидеть, что она содержит. Связанная страница руководства содержит много полезной информации, но также просто выполняет var_dump, чтобы увидеть, что на самом деле в ней. Многие из записей будут заполнены или не будут заполнены, в зависимости от того, что клиент решает сделать, и странных причуд PHP. Глядя на тот, что находится на моем локальном сервере, есть также записи $_SERVER [ "ALL_HTTP" ], которые просто перечисляют их как строку, но, по-видимому, это не стандартно, поскольку он не указан на странице руководства.

Ответ 5

Вы можете просто использовать apache_request_headers() или его псевдоним getallheaders().

Использование: echo json_encode(getallheaders());

Если вышеуказанная функция не существует (старый PHP или nginx), вы можете использовать это как резерв:

<?php 
if (!function_exists('getallheaders')){ 
    function getallheaders() { 
       $headers = ''; 
       foreach ($_SERVER as $name => $value) { 
            if (substr($name, 0, 5) == 'HTTP_') { 
                $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value; 
            } 
       } 
       return $headers; 
    } 
}
?>

Ответ 6

вы можете использовать apache_request_header(); может помочь вам.

$headers = apache_request_headers();        
foreach ($headers as $header => $value) {
 echo "<pre>";
 echo "$header : $value";
 echo "</pre>";
}