php自动识别移动设备类

php自动识别移动设备类,在做wap网站时,怎么样让程序自动识别是否是移动设备,然后跳转或使用不同的模版呢,下面分享一段php的移动设备识别类

private function isMobile() {
    // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
    if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])){
        //下面自己写其它代码,因为我用的是tp框架,所以我只要更改模版主题就好了
        return C('DEFAULT_THEME','wap');
        //或者是
        header('location:'http://www.baidu.com');
    }
    // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
    if (isset ($_SERVER['HTTP_VIA'])){
        // 找不到为flase,否则为true
        return stristr($_SERVER['HTTP_VIA'], "wap") ? C('DEFAULT_THEME','wap') : false;
    }
    // 判断手机发送的客户端标志,兼容性有待提高
    if (isset ($_SERVER['HTTP_USER_AGENT'])){
        $clientkeywords = array ('nokia','sony','ericsson','mot','samsung','htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel','lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi','openwave','nexusone','cldc','midp','wap','mobile');
        // 从HTTP_USER_AGENT中查找手机浏览器的关键字
        if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))){
            return C('DEFAULT_THEME','wap');
        }
    }
    // 协议法,因为有可能不准确,放到最后判断
    if (isset ($_SERVER['HTTP_ACCEPT'])){
        // 如果只支持wml并且不支持html那一定是移动设备
        // 如果支持wml和html但是wml在html之前则是移动设备
        if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html')))){
             return C('DEFAULT_THEME','wap');
        }
    }
    return false;
}
分享到:
标签:PHP,自动识别,识别类,
^_^ 亲爱的客官,如果您觉得本文对您有好处,请移动你的鼠标点点下面的广告或上面的或右上角的,非常感谢~ ^_^

php自动识别移动设备类:目前有3 条留言

  1. 地板
    3G微博:

    今天才发现你的博客,连着看了几篇呢 欢迎回访:http://www.3gwb.com

    2016-10-26 下午 5:43
  2. 板凳
    雨嘉:

    不错,很简洁!!!!

    2015-12-02 上午 12:28
  3. 沙发
    Cawn:

    Mark一下留用

    2014-05-08 下午 12:42