PHP判断是否手机访问

时间:2014-03-02  发布人:SHX  浏览次数:6866  评论:0

在做网站时,有的时候会做手机版的网站,这当用户访问网站的时候,我们网站需要一个判断,判断用户是用的什么样的设备(手机还是电脑)。如果是电脑就继续访问网站,如果是手机就跳到另一个地址访问手机网站。

下面用PHP写了一个函数来判断访问的用户用的是什么设备

function isMobile() {
 // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
 if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) {
  return true;
 }
 //如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
 if (isset ($_SERVER['HTTP_VIA'])) {
  //找不到为flase,否则为true
  return stristr($_SERVER['HTTP_VIA'], "wap") ? true : 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 true;
  }
 }
 //协议法,因为有可能不准确,放到最后判断
 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 true;
  }
 }
 return false;
}

下面这个函数也可以试试看

function is_mobile() {
        $user_agent = $_SERVER['HTTP_USER_AGENT'];
        $mobile_agents = Array("240x320","acer","acoon","acs-",
"abacho","ahong","airness","alcatel","amoi","android","
anywhereyougo.com","applewebkit/525","applewebkit/532",
"asus","audio","au-mic","avantogo","becker","benq","bilbo","bird",
"blackberry","blazer","bleu","cdm-","compal","coolpad",
"danger","dbtel","dopod","elaine","eric","etouch","fly ","fly_",
"fly-","go.web","goodaccess","gradiente","grundig",
"haier","hedy","hitachi","htc","huawei","hutchison","inno",
"ipad","ipaq","ipod","jbrowser","kddi","kgt","kwc","lenovo",
"lg ","lg2","lg3","lg4","lg5","lg7","lg8","lg9","lg-","lge-","lge9",
"longcos","maemo","mercator","meridian","micromax","midp",
"mini","mitsu","mmm","mmp","mobi","mot-","moto","nec-","netfront",
"newgen","nexian","nf-browser","nintendo","nitro","nokia","nook",
"novarra","obigo","palm","panasonic","pantech","philips","phone",
"pg-","playstation","pocket","pt-","qc-","qtek","rover","sagem",
"sama","samu","sanyo","samsung","sch-","scooter","sec-","sendo",
"sgh-","sharp","siemens","sie-","softbank","sony","spice","sprint",
"spv","symbian","tablet","talkabout","tcl-","teleca","telit","tianyu",
"tim-","toshiba","tsm","up.browser","utec","utstar","verykool",
"virgin","vk-","voda","voxtel","vx","wap","wellco","wig browser",
"wii","windows ce","wireless","xda","xde","zte");
        $is_mobile = false;
        foreach ($mobile_agents as $device) {
                if (stristr($user_agent, $device)) {
                        $is_mobile = true;
                        break;
                }
        }
        return $is_mobile;
}

 

返回

上一篇:技术宅不会表白伤不起啊下一篇:网页制作小工具合集

我要评论

    loading
 

关闭

loading

回顶部