Mobile Safari – очень удобный браузер, и он может обрабатывать мой сайт так, как он есть. Однако на моей странице есть несколько элементов, которые можно оптимизировать для просмотра с помощью этого устройства; такие как обслуживание определенных миниатюр, которые меньше, чем у настольных копий, чтобы помочь разместить больше контента на экране.
Я хотел бы знать, как я могу обнаружить Mobile Safari (все версии, желательно) с помощью PHP, поэтому я могу обслуживать a) конкретный файл css и b) миниатюры изображений разного размера.
Сравните строку пользовательского агента с одним из приложений Safari Mobile:
Safari Mobile User Agent String
Спасибо Джо, я прочитал эту страницу и нашел библиотеку обнаружения WebKit (в JavaScript). Я изменил код в соответствии с моими потребностями.
Для всех, кого это интересует, вот мое решение.
<?php /* detect Mobile Safari */ $browserAsString = $_SERVER['HTTP_USER_AGENT']; if (strstr($browserAsString, " AppleWebKit/") && strstr($browserAsString, " Mobile/")) { $browserIsMobileSafari = true; } ?>
$_SERVER['HTTP_USER_AGENT']
Это даст вам строку пользовательского агента, которую вы можете сравнить с мобильным сафари.
ps http://wurfl.sourceforge.net/ WURFL может помочь вам определить, какие UA вы хотите.
Я опубликовал новый режим обнаружения устройств на любом языке программирования (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
Mozilla / 5.0 (webOS / 1.0; U; en-US) AppleWebKit / 525.27.1 (KHTML, например, Gecko) Версия / 1.0 Safari / 525.27.1 Pre / 1.0, который является браузером для ладони Pre, и слово «Mobile» ' не там.
Я работаю над тем, чтобы моя работа обнаружения полностью работала со всеми новыми браузерами. Посмотрев на mytouch, G1, Palm Pre, droid и другие, (но не все), я уверен, что это работает для всех новых телефонов:
if (preg_match ("/ applewebkit / i", $ _SERVER ['HTTP_USER_AGENT']) && preg_match ("/ (mobile | pre) / i", $ _SERVER ['HTTP_USER_AGENT'])) header ("Местоположение: http: / /simplefoodie.com/iphone/?carryover= ".urlencode ($ _ SERVER [REQUEST_URI]));
<?php // detect Safari only! $string = $_SERVER['HTTP_USER_AGENT']; if (strstr($string, " AppleWebKit/") && strstr($string, " Safari/") && !strstr($string, " CriOS")) { echo 'See in Safari only'; } ?>