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

Все они хранятся в $_SERVER ? Даже обычные?

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

Попробуй это

print_r ($ _SERVER)

Он будет перечислять все в массиве

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

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

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

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

Вы можете просто использовать 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; } } ?> 

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

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