如何使用 PHP 检测移动 Safari 服务器端


How do I detect Mobile Safari server side using PHP?

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

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

谢谢乔,我阅读了该页面并找到了 WebKit 检测库(在 JavaScript 中)。我更改了代码以满足我的需求。

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

<?php
/* detect Mobile Safari */
$browserAsString = $_SERVER['HTTP_USER_AGENT'];
if (strstr($browserAsString, " AppleWebKit/") && strstr($browserAsString, " Mobile/"))
{
    $browserIsMobileSafari = true;
}
?>
$_SERVER['HTTP_USER_AGENT']  

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

附言:http://wurfl.sourceforge.net/WURFL可以帮助您确定所需的UA。

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

Safari 移动用户代理字符串

我发布了一种新的模式来检测任何编程语言(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,如壁虎) 版本/1.0 Safari/525.27.1 Pre/1.0 那是掌上浏览器 Pre,没有"移动"一词。

我正在努力使我的检测在所有较新的功能浏览器上完全工作。在查看了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';
    }
?>