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

时间:2012-03-13 01:57:16

标签: php mobile redirect

当他使用iPhone时,有没有办法将用户重定向到子域,然后在使用android时重定向到不同的子域,这全部使用php?

2 个答案:

答案 0 :(得分:1)

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

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

<?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

希望这有帮助!

答案 1 :(得分:0)

我相信你正在寻找php的get_browser$_SERVER

其中任何一个或两个都可以帮助您确定访问者正在使用的浏览器。从那里开始,只需向header发送适当的位置即可。