当前位置:首页 > PHP教程 > php应用 > 列表

php中$_SERVER['HTTP_USER_AGENT']判断是否为手机访问网站

发布:smiling 来源: PHP粉丝网  添加日期:2014-07-29 09:40:22 浏览: 评论:0 

HTTP_USER_AGENT是获取用户浏览器信息的一个全局变量,我们可以利用HTTP_USER_AGENT获取的值来判断用户是手机浏览器还是电脑访问网,代码如下:

  1. $uAgent = $_SERVER['HTTP_USER_AGENT']; 
  2.  
  3. $osPat = "mozilla|m3gate|winwap|openwave|Windows NT|Windows 3.1|95|Blackcomb|98|ME|X Window|ubuntu|Longhorn|AIX|Linux|AmigaOS|BEOS|HP-UX|OpenBSD|FreeBSD|NetBSD|OS/2|OSF1|SUN"
  4.  
  5. if(preg_match("/($osPat)/i"$uAgent )) //winwap 模拟WAP手机上网的一个浏览器; openwave|后面为各pc操作系统 
  6.  
  7.  
  8. echo "电脑访问"
  9.  
  10.  
  11. else 
  12.  
  13.  
  14. echo "手机访问"
  15.  
  16.  
  17. echo '<br/>'.$uAgent

现在我们事完整的把实例写成一个文件,代码如下:

  1. $ua = strtolower($_SERVER['HTTP_USER_AGENT']); 
  2.  
  3. $uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|cldc|midp|mobile|wap)/i"
  4.  
  5. if(($ua == '' || preg_match($uachar$ua))&& !strpos(strtolower($_SERVER['REQUEST_URI']),'wap')) 
  6.     $Loaction = 'wap/'
  7.  
  8.     if (!emptyempty($Loaction)) 
  9.     { 
  10.         ecs_header("Location: $Loactionn"); 
  11.  
  12.         exit
  13.     } 
  14.  
  15.  
  16.  
  17. /**   
  18. * 自定义 header 函数,用于过滤可能出现的安全隐患   
  19. *   
  20. * @param   string  string  内容   
  21. *   
  22. * @return  void   
  23. **/   
  24. function ecs_header($string$replace = true, $http_response_code = 0)    
  25. {    
  26.     if (strpos($string'../upgrade/index.php') === 0)    
  27.     {    
  28.         echo '<script type="text/javascript">window.location.href="' . $string . '";</script>';    
  29.     }    
  30.     $string = str_replace(array("r""n"), array(''''), $string);    
  31.    
  32.     if (preg_match('/^s*location:/is'$string))    
  33.     {    
  34.         @header($string . "n"$replace);    
  35.    
  36.         exit();    
  37.     }    
  38.    
  39.     if (emptyempty($http_response_code) || PHP_VERSION < '4.3')    
  40.     {    
  41.         @header($string$replace);    
  42.     }    
  43.     else   
  44.     {    
  45.         @header($string$replace$http_response_code);    
  46.     }    
  47. }  

javascript中采用navigator.userAgent 来获取,但非智能机似乎不支持js,支持js的移动客户端还可以用以下代码简单判断是不是windows电脑访问的,代码如下:

  1. if(navigator.platform.indexOf('Win32')!=-1){ 
  2. //go to pc 
  3. }else
  4. // go to 手机 

Tags: $_SERVER 是否为手机访问网站

分享到: