如何使用PHP检测Mobile Safari服务器端?
Mobile Safari是一个功能非常强大的浏览器,它可以完美地处理我的网站。不过,我的网页上有几个元素可以针对使用此设备进行浏览进行优化;如提供比桌面设备小的缩略图,以帮助在屏幕上显示更多内容。如何使用PHP检测Mobile Safari服务器端?
我想知道我可以使用PHP检测移动Safari浏览器(所有版本,最好),这样的话我可以成为一)一个特定的css文件和b)不同大小的图像缩略图。
$_SERVER['HTTP_USER_AGENT']
这会给你的用户代理字符串回来,你可以比较手机safari。
p.s. http://wurfl.sourceforge.net/ WURFL可以帮助您确定您想要的UA。
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';
}
?>
此链接似乎不再适合正确的位置。 – Nosredna 2009-07-14 21:36:38
您的链接似乎不再有效..它只是重定向到开发者的Safari浏览器的首页。 – matdumsa 2010-03-22 15:58:56