判断浏览器是否支持wap

近期在工作中要处理一个问题根据用户的浏览器判断是访问wap2还是wap1。虽然之前有处理过访问的浏览器是否支持Wap,但之前的方法不太适合,目前的需求。在网络上找这方面的资源与分析比较成熟的几个wap站。

分析:一般根据浏览器的访问头信息分析是否支持wap,由于目前的浏览器各标准不同与信息差别比较大,就有一定的难度。我的方法是尽量抓取浏览器的头信息,分析共同点处理。目前分析的信息,主要有用的两个头信息是$_SERVER['HTTP_USER_AGENT']与$_SERVER['HTTP_ACCEPT'] 下面是我处理方法:

 

 

 

$contentType = ''; //简彩版切换 if (isset($_GET['t'])) { $t = intval($_GET['t']); if (1 == $t) { //检查是否支持wap1.0 if ((!empty($_SERVER['HTTP_ACCEPT']) && stripos($_SERVER['HTTP_ACCEPT'] 'vnd.wap.w') !== false) || (isset($_SERVER['HTTP_USER_AGENT']) && false !== stripos($_SERVER['HTTP_USER_AGENT'], 'OPERA'))) $contentType = '1'; }else{ if (!empty($_SERVER['HTTP_ACCEPT']) && stripos($_SERVER['HTTP_ACCEPT'], 'application/xhtml+xml') !== false) $contentType = '2'; } } if(empty($contentType) && isset($_GET['ct'])) $contentType = $_GET['ct']; if (empty($contentType) && isset($_SERVER['HTTP_USER_AGENT'])) { $ua = strtoupper($_SERVER['HTTP_USER_AGENT']); if (false !== strpos($ua, 'MOZILLA') || false !== strpos($ua, 'OPERA')) { $contentType = '2'; }else{ $contentType = '1'; } } if (empty($contentType) && isset($_SERVER['HTTP_ACCEPT'])) { $acceptInfo = strtolower($_SERVER['HTTP_ACCEPT']); if ((strpos($acceptInfo,'vnd.wap.wml')!==false) && (strpos($acceptInfo,'text/html')===false || (strpos($acceptInfo,'vnd.wap.wml') < strpos($acceptInfo,'text/html')))) { $contentType = '1'; } else { $contentType = '2'; } } if(empty($contentType)) $contentType = '2'; return $contentType; } 

 

这个方法是根据http协议的头信息处理,有些手机获取不到头信息是因为移动服务的网关过滤了。

你可能感兴趣的:(浏览器,server,user,Opera,WAP,mozilla)