求一个php检测是否是手机的代码如果能把discuz的分离出来最好了。

解决方案 »

  1.   

    我目前用的使用user_agent判断,不过可能会存在缺陷,不过对于常见的也够用了
    $ua = $_SERVER['HTTP_USER_AGENT'];
    //手机
    $preg="/.*(ucweb|Nokia|Mobile|SAMSUNG|SonyEricsson|MOT|BlackBerry|LG|HTC|J2ME|Opera Mini|iPhone|Symbian|iOS|Palm|Android|MeeGo|Windows CE).*/i";
    if(preg_match($preg,$ua))
    {
        return 'mobile';
    }
      

  2.   

    直接给段代码,读不懂的再问我
    <?php
    function is_mobile(){
     // returns true if one of the specified mobile browsers is detected
     $regex_match="/(nokia|iphone|android|motorola|^mot\-|softbank|foma|docomo|kddi|up\.browser|up\.link|";
     $regex_match.="htc|dopod|blazer|netfront|helio|hosin|huawei|novarra|CoolPad|webos|techfaith|palmsource|";
     $regex_match.="blackberry|alcatel|amoi|ktouch|nexian|samsung|^sam\-|s[cg]h|^lge|ericsson|philips|sagem|wellcom|bunjalloo|maui|";
     $regex_match.="symbian|smartphone|midp|wap|phone|windows ce|iemobile|^spice|^bird|^zte\-|longcos|pantech|gionee|^sie\-|portalmmm|";
     $regex_match.="jig\s browser|hiptop|^ucweb|^benq|haier|^lct|opera\s*mobi|opera\*mini|320x320|240x320|176x220";
     $regex_match.=")/i";
     return isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE']) or preg_match($regex_match, strtolower($_SERVER['HTTP_USER_AGENT']));
     }
     /* 
     allow the user a way to force either the full or mobile versions of the site - use a GET parameter on requests:
     include likes to both versions of the site w/ the special force mode parameters, 'mobile' and 'full':
     <a href="http://www.example.org/?mobile">View Mobile Site</a>
     <a href="http://www.example.org/?full">View Full Site</a>
     Always check for 'mobile' or 'full' parameters before accounting for any User-Agent conditions:
     */
    if ($_GET['mobile']) {
     $is_mobile = true;
     }
    if ($_GET['full']) {
    $is_mobile = false;
    }
    if($is_mobile) {
    //it's a mobile browser, do something
    header("Location: http://www.yoursite.com/mobile");
    } else {
    //it's not a mobile browser, do something else
    header("Location: http://www.yoursite.com/desktop");
    // or instead of a redirect, simply build html below
    }
    ?>