2016-01-03 2 views
0

У меня возникла проблема с разбором http-заголовков с PHP.PHP Headers Parsing

Когда я запускаю этот код:

$headers = getallheaders(); 

все заголовки загружаются в $headers массив. Однако, если любое имя ключа массива имеет в нем «-», то соответствующий результат равен нулю. Например:

echo $headers[User-Agent]; 

возвратит нуль, тогда как:

echo $headers[Host]; 

возвратит значение нормально.

Это ошибка, или я чего-то не хватает?

ответ

1

Просто попробуйте использовать Doube/одиночные кавычки, как код ниже:

<?php 
    $headers = getallheaders(); 
    echo $headers["User-Agent"]; 
    echo $headers["Host"]; 
?> 

Выход:

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/44.0.2403.89 Chrome/44.0.2403.89 Safari/537.36main.xfiddle.com 

Попробуйте этот код в php fiddle

+0

все еще не работает в моей среде, пока он работает на сайте скрипки. У вас есть ключ? –

1

Попробуйте демпинг $headers и посмотреть, что в нем ,

var_dump($headers); 

Найдите доступные ключи и используйте их.

var_dump($headers['User-Agent']); 

Обратите внимание, что ключи чувствительны к регистру.