php如何判断是手机还是电脑-PHP问题

资源魔 25 0

php若何判别是手机仍是电脑

有时咱们需求晓得用户以后的设施,以便进行营业解决,例如pc就跳转pc站,手机就跳转手机站,上面引见一种判别的办法。

  1. 起首php猎取$_SERVER['HTTP_USER_AGENT']的值;

  2. 而后比对各个阅读器特定的字符串;

  3. 最初经过比对后果就可以判别是手机仍是电脑了。

代码以下:

/**
 * 
 * 依据php的$_SERVER['HTTP_USER_AGENT'] 中各类阅读器拜访时所蕴含各个阅读器特定的字符串来判别是属于PC仍是挪动端
 * @author           discuz3x
 * @lastmodify    2014-04-09
 * @return  BOOL
 */
function checkmobile() {
 global $_G;
 $mobile = array();
//各个触控阅读器中$_SERVER['HTTP_USER_AGENT']所蕴含的字符串数组
 static $touchbrowser_list =array('iphone', 'android', 'phone', 'mobile', 'wap', 'netfront', 'java', 'opera mobi', 'opera mini',
    'ucweb', 'windows ce', 'symbian', 'series', 'webos', 'sony', 'blackberry', 'dopod', 'nokia', 'samsung',
    'palmsource', 'xda', 'pieplus', 'meizu', 'midp', 'cldc', 'motorola', 'foma', 'docomo', 'up.browser',
    'up.link', 'blazer', 'helio', 'hosin', 'huawei', 'novarra', 'coolpad', 'webos', 'techfaith', 'palmsource',
    'alcatel', 'amoi', 'ktouch', 'nexian', 'ericsson', 'philips', 'sagem', 'wellcom', 'bunjalloo', 'maui', 'smartphone',
    'iemobile', 'spice', 'bird', 'zte-', 'longcos', 'pantech', 'gionee', 'portal妹妹m', 'jig browser', 'hiptop',
    'benq', 'haier', '^lct', '320x320', '240x320', '176x220');
//window手机阅读器数组【猜的】
 static $mobilebrowser_list =array('windows phone');
//wap阅读器中$_SERVER['HTTP_USER_AGENT']所蕴含的字符串数组
 static $wmlbrowser_list = array('cect', 'compal', 'ctl', 'lg', 'nec', 'tcl', 'alcatel', 'ericsson', 'bird', 'daxian', 'dbtel', 'eastcom',
   'pantech', 'dopod', 'philips', 'haier', 'konka', 'kejian', 'lenovo', 'benq', 'mot', 'soutec', 'nokia', 'sagem', 'sgh',
   'sed', 'capitel', 'panasonic', 'sonyericsson', 'sharp', 'amoi', 'panda', 'zte');
 $pad_list = array('pad', 'gt-p1000');
 $useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
 if(dstrpos($useragent, $pad_list)) {
  return false;
 }
 if(($v = dstrpos($useragent, $mobilebrowser_list, true))){
  $_G['mobile'] = $v;
  return '1';
 }
 if(($v = dstrpos($useragent, $touchbrowser_list, true))){
  $_G['mobile'] = $v;
  return '2';
 }
 if(($v = dstrpos($useragent, $wmlbrowser_list))) {
  $_G['mobile'] = $v;
  return '3'; //wml版
 }
 $brower = array('mozilla', 'chrome', 'safari', 'opera', 'm3gate', 'winwap', 'openwave', 'myop');
 if(dstrpos($useragent, $brower)) return false;
 $_G['mobile'] = 'unknown';
//关于未知类型的阅读器,经过$_GET['mobile']参数来决议能否是手机阅读器
 if(isset($_G['mobiletpl'][$_GET['mobile']])) {
  return true;
 } else {
  return false;
 }
}
/**
 * 判别$arr中元素字符串能否有呈现正在$string中
 * @param  $string     $_SERVER['HTTP_USER_AGENT'] 
 * @param  $arr          各中阅读器$_SERVER['HTTP_USER_AGENT']中必然会蕴含的字符串
 * @param  $returnvalue 前往阅读器称号仍是前往布尔值,true为前往阅读器称号,false为前往布尔值【默许】
 * @author           discuz3x
 * @lastmodify    2014-04-09
 */
function dstrpos($string, $arr, $returnvalue = false) {
 if(empty($string)) return false;
 foreach((array)$arr as $v) {
  if(strpos($string, $v) !== false) {
   $return = $returnvalue ? $v : true;
   return $return;
  }
 }
 return false;
}

更多PHP相干常识,请拜访PHP中文网!

以上就是php若何判别是手机仍是电脑的具体内容,更多请存眷资源魔其它相干文章!

标签: php 判断 php教程 php故障解决 php使用问题

抱歉,评论功能暂时关闭!