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

问题描述:

Mobile Safari是一个功能非常强大的浏览器,它可以完美地处理我的网站。不过,我的网页上有几个元素可以针对使用此设备进行浏览进行优化;如提供比桌面设备小的缩略图,以帮助在屏幕上显示更多内容。如何使用PHP检测Mobile Safari服务器端?

我想知道我可以使用PHP检测移动Safari浏览器(所有版本,最好),这样的话我可以成为一)一个特定的css文件和b)不同大小的图像缩略图。

比较用户代理字符串与移动Safari浏览器的一个用途:

Safari Mobile User Agent String

+2

此链接似乎不再适合正确的位置。 – Nosredna 2009-07-14 21:36:38

+0

您的链接似乎不再有效..它只是重定向到开发者的Safari浏览器的首页。 – matdumsa 2010-03-22 15:58:56

$_SERVER['HTTP_USER_AGENT'] 

这会给你的用户代理字符串回来,你可以比较手机safari。

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

+0

DeviceAtlas是WURFL的另一种替代方案 – 2008-10-09 11:01:41

感谢乔,我读了页面,发现WebKit detection library(在JavaScript)。我改变了代码以适应我的需求。

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

<?php 

/* detect Mobile Safari */ 

$browserAsString = $_SERVER['HTTP_USER_AGENT']; 

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

?> 

我已经出版了一本新的模式来检测任何编程语言设备(JSP,PHP,Perl和Python的.....),这就是所谓的阿帕奇移动过滤器是一个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;烯-US)为AppleWebKit/525.27.1(KHTML,例如Gecko)版本/ 1.0的Safari/525.27.1前/ 1.0那是Palm 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(“Location: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'; 
    } 

?>