php中HTTP_USER_AGENT判断手机类型的函数

发布时间:2020-04-16编辑:脚本学堂
本文介绍下,在php中,用HTTP_USER_AGENT判断手机类型的函数,有需要的朋友,参考下。

有关判断手机类型的方法,脚本学堂之前的文章有所提及。
相关参考文章:
判断是否手机访问
php判断是否手机访问的代码


用HTTP_USER_AGENT判断手机类型,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
/**
* 判断手机类型
* by www.jb200.com
*/
function is_mobile_request() 
      $_SERVER['ALL_HTTP'] = isset($_SERVER['ALL_HTTP']) ? $_SERVER['ALL_HTTP'] : ''
      $mobile_browser = '0'
      if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap
|phone|iphone|ipad|ipod|android|xoom)/i',
 strtolower($_SERVER['HTTP_USER_AGENT']))) 
        $mobile_browser++; 
      if((isset($_SERVER['HTTP_ACCEPT'])) and (strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml') !== false)) 
        $mobile_browser++; 
      if(isset($_SERVER['HTTP_X_WAP_PROFILE'])) 
        $mobile_browser++; 
      if(isset($_SERVER['HTTP_PROFILE'])) 
        $mobile_browser++; 
      $mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4)); 
      $mobile_agents = array( 
            'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac'
            'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno'
            'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-'
            'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-'
            'newt','noki','oper','palm','pana','pant','phil','play','port','prox'
            'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar'
            'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-'
            'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp'
            'wapr','webc','winw','winw','xda','xda-' 
            ); 
      if(in_array($mobile_ua, $mobile_agents)) 
        $mobile_browser++; 
      if(strpos(strtolower($_SERVER['ALL_HTTP']), 'operamini') !== false
        $mobile_browser++; 
      // Pre-final check to reset everything if the user is on Windows 
      if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows') !== false
        $mobile_browser=0; 
      // But WP7 is also Windows, with a slightly different characteristic 
      if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows phone') !== false
        $mobile_browser++; 
      if($mobile_browser>0) 
        return true
      else
        return false
}
?>
附一个自己写的简单方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
//能过http_user_agent检测是否手机访问
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
 
$uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|
philips|panasonic|alcatel|lenovo|cldc|midp|mobile|wap)/i";
 
if(($ua == '' || preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER['REQUEST_URI']),'wap'))
{
    $Loaction = 'wap/';
 
    if (!empty($Loaction))
    {
        ecs_header("Location: $Loactionn");
 
        exit;
    }
}
?>
39