2010-06-10 3 views

ответ

5
<?php 
echo $_SERVER['HTTP_USER_AGENT']; 
?> 

Как говорит Palantir, кроме того, посмотрите на функцию get_browser, где вы можете проверить также возможности включены в браузере.

+0

Помня о том, что пользовательский агент легко поддается подделке. – nico

2

См. get_browser().

<?php 
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n"; 

$browser = get_browser(null, true); 
print_r($browser); 
?> 
5
+0

ссылка для скачивания на веб-сайте мертва :( – vsync

+0

, которая скачивает ссылку? В одном из руководств PHP, которые я предоставил? Это работает для меня ... – Palantir

+1

, что ОЧЕНЬ странно. Я НЕ написал этот комментарий здесь .. – vsync

2

В целом, вы не можете. Вы можете, конечно, попытаться получить его, и вы почти наверняка получите что-то такое, что выглядит как и то, что вы хотите; но нет абсолютно никакой возможности проверить, не верна ли информация. Когда вы получаете строку пользовательского агента, браузер на другом конце может быть правдивым или может быть вредным. Когда вы имеете дело с пользователями, всегда предполагайте, что это, по сути, ложь.

Существует не «лучший способ» справиться с этим, но то, что вы, скорее всего, захотите сделать, это проверить свой сайт с помощью самых разных браузеров, использовать переносные методы HTML и CSS, и если вы абсолютно должны, заполните дыры с JavaScript.

Выбор данных, которые следует отправить браузеру, на основе какого браузера думаю это плохая идея.

+2

Я не согласен Иногда есть причины ориентироваться на определенные браузеры, потому что они иногда имеют разные функции. Браузер пользователя сообщает все, что захочет, и если пользователь хочет его изменить, тогда он получит неправильный контент и в конечном итоге сломанную функциональность.Пользователи этого не делают, и если они это сделают, тогда они знают, что они делают и чего ожидать. Вся сеть на самом деле основана на каком-то доверии, где у пользователя больше энергии, чем при использовании настольного программного обеспечения, это часть игры. Подумайте о источниках, cookie, поддержке javascript и т. Д. – Palantir

+0

@Palantir: amen, brother. – nickf

+2

Идентичность! = Возможности. Проверьте функции, а не имена. –

3

Вам нужно будет создать функцию для преобразования данных агента пользователя в общие имена браузеров

Например, $_SERVER['HTTP_USER_AGENT'] может вернуться Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9* является светлячок или Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.55 Safari/533.4 является Chrome

Детали предоставить вам рендеринга двигателя, базы кода, версии, os и т. д.

Я бы предложил использовать preg_match и/или список известных браузеров - вы хотите сделать что-то вроде

echo browserCommonName($_SERVER['HTTP_USER_AGENT']); для вывода «Google Chrome».

browserCommonName ($ userAgent) потребуется список известных браузеров.

Редактировать: только что заметил get_browser buit в php, это плохо, потому что я не читаю нить.

Смежные вопросы