如何使用PHP检测Mobile Safari服务器端?

时间:2008-10-09 10:54:33

标签: php iphone optimization mobile-safari

Mobile Safari是一款功能非常强大的浏览器,它可以完美地处理我的网站。但是,我的页面上有一些元素可以针对使用此设备进行浏览进行优化;例如,提供小于桌面版本的特定缩略图,以帮助将更多内容放入屏幕。

我想知道如何使用PHP检测Mobile Safari(最好是所有版本),然后我可以提供a)特定的css文件和b)不同大小的图像缩略图。

6 个答案:

答案 0 :(得分:7)

感谢Joe,我阅读了该页面并找到了WebKit detection library(在JavaScript中)。我更改了代码以满足我的需求。

对于任何有兴趣的人,这是我的解决方案。

<?php

/* detect Mobile Safari */

$browserAsString = $_SERVER['HTTP_USER_AGENT'];

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

?>

答案 1 :(得分:4)

将用户代理字符串与Safari Mobile使用的字符串进行比较:

Safari Mobile User Agent String

答案 2 :(得分:3)

$_SERVER['HTTP_USER_AGENT']  

这将为您提供用户代理字符串,您可以将其与移动版Safari进行比较。

P.S。 http://wurfl.sourceforge.net/ WURFL可以帮助您确定您想要的UA。

答案 3 :(得分:0)

我已经发布了一种新的模式来检测任何编程语言(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

答案 4 :(得分:0)

Mozilla / 5.0(webOS / 1.0; U; en-US)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'])&amp;&amp; preg_match(“/(mobile | pre)/ i”,$ _SERVER ['HTTP_USER_AGENT']))     标题(“位置:http://simplefoodie.com/iphone/?carryover=”。urlencode($ _ SERVER [REQUEST_URI]));

答案 5 :(得分:0)

<?php

// detect Safari only!

$string = $_SERVER['HTTP_USER_AGENT'];

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

?>