Определить версию iOS с помощью PHP

Для обнаружения Internet Explorer я использую его линию.

<?php if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { };?>

Как определить iOS 5.


person RIK    schedule 14.10.2011    source источник
comment
Проверьте: useragentstring.com/pages/Browserlist для списка строк пользовательского агента.   -  person PeeHaa    schedule 14.10.2011


Ответы (4)


HTTP_USER_AGENT вернет следующее:

Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7

Если вы пытаетесь обнаружить iOS 5, сделайте следующее:

 <?php if(strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone OS 5_0') !== false) { };?>
person Semere Taézaz Sium    schedule 14.10.2011
comment
Я уверен, что вы правы. Я не могу проверить это в данный момент. Спасибо - person RIK; 14.10.2011
comment
Из любопытства, что, если бы я хотел проверить наличие нескольких пользовательских агентов - person RIK; 14.10.2011
comment
Если вы хотите проверить наличие нескольких пользовательских агентов, то да, get_browser() — это то, что вам нужно. Просто обратите особое внимание на примечание об обновлении php_browscap.ini. - person Semere Taézaz Sium; 14.10.2011

У меня была аналогичная проблема, но мне нужно было получить номер версии на iPhone и iPad, используя $_SERVER['HTTP_USER_AGENT']. Я предполагаю, что это не совсем надежно, но это сработало для меня:

<?php 

$version = preg_replace("/(.*) OS ([0-9]*)_(.*)/","$2", $_SERVER['HTTP_USER_AGENT']);

// for example you use it this way

if ($version > 5){
// do something
}


?> 
person Jorge    schedule 26.10.2012
comment
Я обнаружил, что некоторые пользовательские агенты не были обнаружены должным образом и возвращены как Mac OS X для ОС вместо iPad iOS (определение пользовательского агента, вероятно, нуждается в обновлении), поэтому я использовал этот вариант preg_match: preg_match( /(.*) OS ?X? ( [0-9]*)_(.*)/, $user_agent, $matches ); - person hanmari; 31.08.2020

Если это возможно, используйте get_browser().

Однако, поскольку строку User-Agent легко подделать, а список браузеров/ОС является постоянно меняющейся целью, это никогда не будет на 100% надежным. Чтобы это вообще работало, вы должны поддерживать файл php_browscap.ini в актуальном состоянии (см. примечание на связанной странице руководства).

person DaveRandom    schedule 14.10.2011
comment
Не могли бы вы дать более подробную информацию о моем уравнении if else о том, какой пользовательский агент я ищу с iOS - person RIK; 14.10.2011
comment
Я не могу, потому что у меня нет устройства iOS для тестирования. Извини. Вы должны были бы проверить это сами (просто var_dump(get_browser(null,true));) - person DaveRandom; 14.10.2011

Просто и легко

<?php
   $browser = get_browser(null, true);
   echo $browser['platform'];
?> 

Документы говорят

Примечание:

Чтобы это работало, ваши настройки конфигурации browscap в php.ini должны указывать на правильное расположение файла browscap.ini в вашей системе.

browscap.ini не входит в состав PHP, но вы можете найти последнюю версию » php_browscap.ini файл здесь.

Хотя файл browcap.ini содержит информацию о многих браузерах, он зависит от пользовательских обновлений, чтобы поддерживать базу данных в актуальном состоянии. Формат файла достаточно понятен.

person Mob    schedule 14.10.2011