基于设备的重定向(服务器端)


redirecting based on device (server-side)

有没有任何方法可以在用户使用iPhone时将其重定向到子域,然后在使用android时重定向到不同的子域,这都是使用php的?

是的,您可以使用$_SERVER全局数组来检测有关请求的各种信息,例如请求标头。特别是,您可以解析出User Agent字符串,以确定连接到PHP应用程序的浏览器,并根据这些信息进行重定向。

这里的PHP get_browser函数文档有一个很好的例子:

<?php
echo $_SERVER['HTTP_USER_AGENT'] . "'n'n";
$browser = get_browser(null, true);
print_r($browser);
?>

使用以上功能,您可以创建自己的功能,如isAndroid或isIphone,通过用户代理字符串检测移动设备。

function isAndroid()
{
    if(preg_match('/android/i', $browser))
        return true;
    return false;
}
function isIphone()
{
    if(preg_match('/iphone/i', $browser))
        return true;
    return false;
}

作为参考,iPhone用户代理字符串如下所示:Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3

Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a

Android的用户代理字符串将如下所示:Mozilla/5.0 (Linux; U; Android 2.1; en-us; Nexus One Build/ERD62) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17

希望这能有所帮助!

我相信您正在寻找php的get_browser和$_SERVER。

其中一个或两个都将帮助您确定访问者正在使用的浏览器。从那里开始,只需要发送具有适当位置的标头。