2009-09-10 8 views

Odpowiedz

18

Każde pole nagłówka żądania HTTP znajduje się pod numerem $_SERVER (z wyjątkiem Cookie), a klucz rozpoczyna się od HTTP_. Jeśli używasz Apache, możesz również spróbować apache_request_headers.

+0

A co z informacjami o plikach cookie? Czy możemy użyć $ _COOKIE [] do ich pobierania? –

+1

@dskanth Tak, '$ _COOKIE' zawiera już przetworzone pliki cookie wysyłane przez klienta. Ale nie będzie '$ _SERVER ['HTTP_COOKIE']'. – Gumbo

+0

@Gumbo, Jak się to różni od 'getallheaders'? Czy są jakieś nagłówki, które są usuwane z tego ostatniego? – Pacerier

33

Spróbuj

print_r ($ _SERVER)

To będzie notować wszystko, co w tablicy

+0

Jeśli chcesz czegoś bardziej konkretnego użyć: ' LeRoy

5

Spójrz na zmiennej $_SERVER aby zobaczyć, co on zawiera. Połączona strona podręcznika ma wiele użytecznych informacji, ale po prostu wykonaj na niej var_dump, aby zobaczyć, co w niej jest. Wiele wpisów zostanie lub nie zostanie wypełnionych, w zależności od tego, co klient zdecyduje się zrobić, i dziwnych dziwactw PHP. Patrząc na ten na moim lokalnym serwerze, istnieje również wpis $ _SERVER ["ALL_HTTP"], który po prostu wymienia je wszystkie jako ciąg, ale najwyraźniej nie jest to standardowe, ponieważ nie jest wymienione na stronie podręcznika.

19

możesz użyć getallheaders(), aby uzyskać tablicę wszystkich wysłanych nagłówków HTTP.

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

można po prostu użyć apache_request_headers() lub jego alias getallheaders().

Zastosowanie: echo json_encode(getallheaders());

Jeżeli powyższa funkcja nie istnieje (stary PHP lub nginx) można wykorzystać jako awaryjnej:

<?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; 
    } 
} 
?> 
0

można wykorzystać apache_request_header(); może ci pomóc.

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