Как по-разному определять телефоны Android и планшеты Android, используя заголовок пользовательского агента? - PullRequest
6 голосов
/ 17 октября 2010

Для моего сайта мне нужно знать разницу между посещением планшета Android и посещением телефона Android. Его нужно обнаружить до того, как страница будет отправлена ​​пользователю, поэтому использование JavaScript для проверки разрешения экрана не подходит.

На данный момент я использую это для обнаружения устройства Android: stripos ($ ua, 'android')

Есть ли что-нибудь уникальное, что планшет имеет в своем пользовательском агенте?

Ответы [ 4 ]

5 голосов
/ 13 января 2012

Вы можете использовать PHP $ _SERVER ['HTTP_USER_AGENT'], а затем нечувствительные к регистру функции eregi, чтобы искать следующее, что предполагает, что разработчик браузера следовал рекомендациям Android по спецификации агента пользователя:

$ua = $_SERVER['HTTP_USER_AGENT'];
if (eregi('Android', $ua) && eregi('Mobile', $ua)) $platform = "Android Phone";
elseif (eregi('Android', $ua) && !eregi('Mobile', $ua)) $platform = "Android Tablet";

Это не надежно, но это начало.

0 голосов
/ 24 апреля 2017

@ Патрик Кершнер, ваш код работает только для семейства продуктов Apple.Каждое устройство Apple отправляет свой собственный UA, но это не относится к устройствам Android.На самом деле, автору этого поста нужно знать, является ли устройство Android планшетом или телефоном без использования Javascript.Код, представленный пользователем user336828, является хорошим обходным путем для этого, хотя и не на 100% надежным: некоторые устройства типа клон / белая этикетка / низкого качества могут отправлять одну и ту же строку UA с планшетов и телефонов, но я думаю, что это должно работать с большинствомустройства известных брендов.Я только что проверил этот код на телефоне Android и планшете, и он работает.

0 голосов
/ 26 августа 2013
if(strstr($_SERVER['HTTP_USER_AGENT'],'iPod') ||   strstr($_SERVER['HTTP_USER_AGENT'],'iPhone') || strstr($_SERVER['HTTP_USER_AGENT'],'iPad') || strstr($_SERVER['HTTP_USER_AGENT'],'Android')){ 
    //do something...
}

работал для меня

0 голосов
/ 17 октября 2010

Оформить заказ на проект WURFL .Он должен помочь вам не только в сценарии Android Phone и Android Tablet, но и в других устройствах.

...