【问题标题】:redirecting based on device (server-side)基于设备重定向(服务器端)
【发布时间】:2012-03-13 01:57:15
【问题描述】:

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

【问题讨论】:

    标签: php mobile redirect


    【解决方案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

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2018-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-09
        • 2019-07-03
        相关资源
        最近更新 更多