Как определить сторону сервера Mobile Safari с помощью PHP? - PullRequest
7 голосов
/ 09 октября 2008

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

Я хотел бы знать, как я могу обнаружить Mobile Safari (все версии, предпочтительно), используя PHP, чтобы затем я мог предоставить а) конкретный файл CSS и б) миниатюры изображений разного размера.

Ответы [ 6 ]

7 голосов
/ 09 октября 2008

Спасибо, Джо, я прочитал эту страницу и нашел библиотеку обнаружения WebKit (в JavaScript) Я изменил код в соответствии со своими потребностями.

Для всех, кто заинтересован, вот мое решение.

<?php

/* detect Mobile Safari */

$browserAsString = $_SERVER['HTTP_USER_AGENT'];

if (strstr($browserAsString, " AppleWebKit/") && strstr($browserAsString, " Mobile/"))
{
    $browserIsMobileSafari = true;
}

?>
4 голосов
/ 09 октября 2008

Сравните строку пользовательского агента со строкой, используемой в Safari Mobile:

Строка агента пользователя Safari Mobile

3 голосов
/ 09 октября 2008
$_SERVER['HTTP_USER_AGENT']  

Это вернет вам строку user-agent, которую можно сравнить с мобильным сафари.

p.s. http://wurfl.sourceforge.net/ WURFL может помочь вам определить, какие UA вы хотите.

0 голосов
/ 17 июня 2013
<?php

// detect Safari only!

$string = $_SERVER['HTTP_USER_AGENT'];

if (strstr($string, " AppleWebKit/") && strstr($string, " Safari/") && !strstr($string, " CriOS"))
    {
        echo 'See in Safari only';
    }

?>   
0 голосов
/ 16 декабря 2009

Mozilla / 5.0 (webOS / 1.0; U; ru-ru) AppleWebKit / 525.27.1 (KHTML, как Gecko) Версия / 1.0 Safari / 525.27.1 Pre / 1.0, которая является браузером для Palm Pre, и слова «Мобильный» не существует.

Я работаю над тем, чтобы мой детектор работал полностью со всеми более новыми браузерами. Посмотрев на mytouch, G1, Palm Pre, droid и другие (но не все), я теперь уверен, что это работает для всех новых телефонов:

if (preg_match ("/ applewebkit / i", $ _SERVER ['HTTP_USER_AGENT']) && preg_match ("/ (mobile | pre) / i", $ _SERVER ['HTTP_USER_AGENT'])) заголовок ("Местоположение: http://simplefoodie.com/iphone/?carryover=".urlencode($_SERVER[REQUEST_URI]));

0 голосов
/ 20 ноября 2009

Я опубликовал новый режим обнаружения устройств на любом языке программирования (JSP, PHP, Perl, Python .....), он называется Apache Mobile Filter - это модуль Apache (http://modules.apache.org/search.php?id=1787), который обнаруживает мобильные устройства). устройство, а также может адаптировать изображения к размеру экрана устройства.

Для получения дополнительной информации: http://www.idelfuschini.it/it/apache-mobile-filter-v2x.html

...