首页 > 开发 > PHP > 正文

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

2024-05-04 21:58:13
字体:大 中 小
来源:转载
供稿:网友

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.  
  9. echo "电脑访问"; 
  10.  
  11. } 
  12.  
  13. else 
  14.  
  15. { 
  16.  
  17. echo "手机访问"; 
  18.  
  19. } 
  20.  
  21. 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. { 
  7.     $Loaction = 'wap/'; 
  8.  
  9.     if (!emptyempty($Loaction)) 
  10.     { 
  11.         ecs_header("Location: $Loactionn"); 
  12.  
  13.         exit; 
  14.     } 
  15.  
  16. } 
  17.  
  18.  
  19. /**   
  20. * 自定义 header 函数,用于过滤可能出现的安全隐患   
  21. *   
  22. * @param   string  string  内容   
  23. *   
  24. * @return  void   
  25. **/   
  26. function ecs_header($string, $replace = true, $http_response_code = 0)    
  27. {    
  28.     if (strpos($string, '../upgrade/index.php') === 0)    
  29.     {    
  30.         echo '<script type="text/javascript">window.location.href="' . $string . '";</script>';    
  31.     }    
  32.     $string = str_replace(array("r", "n"), array('', ''), $string);    
  33.    
  34.     if (preg_match('/^s*location:/is', $string))    
  35.     {    
  36.         @header($string . "n", $replace);    
  37.    
  38.         exit();    
  39.     }    
  40.    
  41.     if (emptyempty($http_response_code) || PHP_VERSION < '4.3')    
  42.     {    
  43.         @header($string, $replace);    
  44.     }    
  45.     else   
  46.     {    
  47.         @header($string, $replace, $http_response_code);    
  48.     }    
  49. }  

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

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表