/**
*
* 根据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', 'portalmmm', '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;
}

更多相关文章

  1. 在两个不同的地方分割/爆炸一个PHP字符串
  2. PHP中的嵌套(多个)字符串插值
  3. 查找具有特定数据字符串的数组并返回其具有的另一个数据字符串
  4. 在php中,从字符串中删除逗号后的所有内容
  5. php通过$_SERVER['HTTP_USER_AGENT']获取浏览器相关参数
  6. 如何通过PHP将HTML页面作为字符串获取?
  7. php 基本的常用字符串函数
  8. 使用jQuery和ajax更改浏览器地址栏URL,无需重载页面[重复]
  9. 用PHP计算字符串中元音的简单方法?

随机推荐

  1. 从bash脚本传递参数到python解释器
  2. Python中字典合并的实现方法
  3. Tkinter & mysql 的登录框设计
  4. python尝试自定义数据结构不知道怎么下手
  5. Python JSON里保存中文为'\uXXX'
  6. python解析json文件读取Android permissi
  7. 语法怪癖或者为什么是有效的python
  8. 如何在Scrapy CrawlSpider中访问特定的st
  9. 踏出第一步——安装并跑通python程序
  10. 使用python实现人脸检测