Ответ 1
WURLF - это идеальный способ обнаружения мобильных браузеров, и доступен PHP API.
Мне нужен способ обнаружения мобильных браузеров на стороне сервера. Мне нужен способ, который требует от меня сделать немного, чтобы настроить и немного поддерживать, но все же предоставить мне точное определение (в наименее) Android, мобильных Safari и браузеров Blackberry, а также альтернативы, такие как Opera.
Я бы хотел иметь хотя бы на рынке мобильных телефонов, и я бы предпочел практически весь рынок, если это не займет много времени.
WURLF - это идеальный способ обнаружения мобильных браузеров, и доступен PHP API.
Я нашел это очень простым в использовании php-mobile-detect
(отредактируйте: на данный момент проект возможности браузера закрыт, т.е. этот ответ не является вариантом)
Все, что вам нужно, это get_browser() и недавний браузер browscap.ini, который отображает строку пользовательского агента в браузер/версию и ее возможности.
Вы можете получить, как правило, самую современную версию browsercap.ini от http://browsers.garykeith.com/downloads.asp
Его просто вопрос чтения заголовков (Как прочитать заголовок любого запроса в PHP) и разбора/интерпретации этого, чтобы прочитать "user-agent", вы можете найти существующий PHP script или просто простое регулярное выражение, которое поможет выяснить, какие пользовательские агенты являются мобильными и которые являются обычными ПК/ноутбуками.
Существует множество разных заголовков, так как это указывает на операционную систему, так как многие различные мобильные ОС, как есть, будут заголовками пользовательских агентов, поэтому script должен иметь список всех действительных.
Нашел эту библиотеку некоторое время назад:
http://code.google.com/p/mobileesp/
Имеет версии PHP, Java, JavaScript и С#. Я рассматриваю его как "легкий" инструмент для обнаружения смартфонов и планшетов без зависимостей и регулярно обновляется. У меня смешанные чувства по этому поводу, хотя некоторые аспекты качества кода немного шаткие.
Если вам нужно что-то еще более легкое, плагин WP Super Cache для WordPress содержит некоторые длинные строки регулярных выражений, которые вы могли бы пронести.
Обход браузера, основанный на строках пользовательских агентов, всегда будет шелушащимся. Я посмотрел на WURFL и сжал несколько МБ. Использование этого является излишним. Лучший подход - обнаружить верхние устройства, используемые на веб-сайте, дизайн для этих устройств, а затем назвать его днем.
Zend Framework ввела Zend_Http_UserAgent в последнее время.
Он может определить мобильное устройство и его возможности, обнаружив UserAgent через API Wurfl, TeraWurfl и DeviceAtlas API.
Быстрый поиск в Google поднимает их:
http://mobiforge.com/developing/story/lightweight-device-detection-php
Как насчет http://code.google.com/p/hdapi/? Мобильное обнаружение на стороне сервера в PHP.
К сожалению, WURFL больше не свободен для коммерческих проектов.
Я однажды использовал для хранения временных IP-адресов посетителей и значений csrf-session (предназначенных для подсчета текущих посетителей).
И я заметил, что у меня был побочный эффект от того, чтобы увидеть, пользовался ли посетитель мобильным телефоном или ПК: csrf мобильного телефона меняется с каждой новой загрузкой страницы, на ПК нет; и ip-адреса остаются в обоих случаях.
Конечно, вы обнаруживаете только мобильный телефон, если посетитель щелкает дважды, и я не проверял, насколько это надежно (как мне это действительно не нужно), но это только php/server-side.