亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于php判斷客戶端類型

 更新時間:2016年10月14日 16:14:57   作者:scofi  
本文主要介紹的是PHP判斷客戶端是PC端還是移動手機端方法,可以方便網(wǎng)站用于統(tǒng)計,需要了解的朋友可以參考一下。

在網(wǎng)站用戶數(shù)據(jù)統(tǒng)計的時候,我們經(jīng)常需要獲取用戶瀏覽器的類型和操作系統(tǒng)的類型,本文主要介紹的是基于php判斷客戶端類型,有需要的朋友可以來了解一下。

方法一:

/**
 * 
 * 根據(jù)php的$_SERVER['HTTP_USER_AGENT'] 中各種瀏覽器訪問時所包含各個瀏覽器特定的字符串來判斷是屬于PC還是移動端
 * @author      discuz3x
 * @lastmodify  2014-04-09
 * @return BOOL
 */
function checkmobile() {
 global $_G;
 $mobile = array();
//各個觸控瀏覽器中$_SERVER['HTTP_USER_AGENT']所包含的字符串數(shù)組
 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手機瀏覽器數(shù)組【猜的】
 static $mobilebrowser_list =array('windows phone');
//wap瀏覽器中$_SERVER['HTTP_USER_AGENT']所包含的字符串數(shù)組
 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']參數(shù)來決定是否是手機瀏覽器
 if(isset($_G['mobiletpl'][$_GET['mobile']])) {
 return true;
 } else {
 return false;
 }
}
/**
 * 判斷$arr中元素字符串是否有出現(xiàn)在$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
function isMobile()
{ 
  // 如果有HTTP_X_WAP_PROFILE則一定是移動設(shè)備
  if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
  {
    return true;
  } 
  // 如果via信息含有wap則一定是移動設(shè)備,部分服務(wù)商會屏蔽該信息
  if (isset ($_SERVER['HTTP_VIA']))
  { 
    // 找不到為flase,否則為true
    return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
  } 
  // 腦殘法,判斷手機發(fā)送的客戶端標志,兼容性有待提高
  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中查找手機瀏覽器的關(guān)鍵字
    if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))
    {
      return true;
    } 
  } 
  // 協(xié)議法,因為有可能不準確,放到最后判斷
  if (isset ($_SERVER['HTTP_ACCEPT']))
  { 
    // 如果只支持wml并且不支持html那一定是移動設(shè)備
    // 如果支持wml和html但是wml在html之前則是移動設(shè)備
    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;
} 
?>

判斷手機端是IOS還是Android

代碼如下:

/**
 * 判斷是否手機訪問
 */
function is_mobile()
{
  static $is_mobile;
  if (isset($is_mobile)) return $is_mobile;
  if (empty($_SERVER['HTTP_USER_AGENT'])) {
    $is_mobile = false;
  } elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false // many mobile devices (all iPhone, iPad, etc.)
    || strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false
    || strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false
    || strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false
    || strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false
    || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false
    || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mobi') !== false
  ) {
    $is_mobile = true;
  } else {
    $is_mobile = false;
  }
  return $is_mobile;
}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版

    UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版

    這篇文章主要介紹了UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版的相關(guān)資料,需要的朋友可以參考下
    2015-12-12
  • tp5 實現(xiàn)列表數(shù)據(jù)根據(jù)狀態(tài)排序

    tp5 實現(xiàn)列表數(shù)據(jù)根據(jù)狀態(tài)排序

    今天小編就為大家分享一篇tp5 實現(xiàn)列表數(shù)據(jù)根據(jù)狀態(tài)排序,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 百萬級別知乎用戶數(shù)據(jù)抓取與分析之PHP開發(fā)

    百萬級別知乎用戶數(shù)據(jù)抓取與分析之PHP開發(fā)

    這篇文章主要介紹了百萬級別知乎用戶數(shù)據(jù)抓取與分析之PHP開發(fā)的相關(guān)資料,需要的朋友可以參考下
    2015-09-09
  • php實現(xiàn)圖片縮略圖的方法

    php實現(xiàn)圖片縮略圖的方法

    本文使用php實現(xiàn)的圖片縮略圖,支持jpg,jpeg,gif,png,bmp圖片格式,支持按原圖片的比例進行縮放,可以選擇在圖片縮放的過程中是否需要對圖片進行裁切,加入了圖片質(zhì)量控制,可以實現(xiàn)縮略圖片質(zhì)量最高化,需要的朋友可以參考下本段代碼
    2016-03-03
  • php??intval函數(shù)的用法示例小結(jié)

    php??intval函數(shù)的用法示例小結(jié)

    這篇文章主要介紹了php??intval函數(shù)的用法,intval()函數(shù)用于將字符串轉(zhuǎn)換為整數(shù),可以指定進制數(shù),并可以處理前導(dǎo)零和非數(shù)字字符,本文通過示例給大家介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • PHP執(zhí)行l(wèi)inux命令常用函數(shù)匯總

    PHP執(zhí)行l(wèi)inux命令常用函數(shù)匯總

    一般情況下,很少會用php去執(zhí)行l(wèi)inux命令,不過特殊情況下,你也許會用到這些函數(shù)。以前我知道有二個函數(shù)可以執(zhí)行l(wèi)inux命令,一個是exec,一個是shell_exec,通過本文給大家介紹PHP執(zhí)行l(wèi)inux命令常用函數(shù)匯總,需要的朋友參考下
    2016-02-02
  • PHP編寫RESTful接口的方法

    PHP編寫RESTful接口的方法

    這篇文章主要為大家詳細介紹了PHP編寫RESTful接口的方法,如何使用PHP編寫RESTful接口,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Zend Framework教程之動作的基類Zend_Controller_Action詳解

    Zend Framework教程之動作的基類Zend_Controller_Action詳解

    這篇文章主要介紹了Zend Framework教程之動作的基類Zend_Controller_Action的用法,結(jié)合實例形式詳細分析了動作的基類Zend_Controller_Action具體功能,使用方法與相關(guān)注意事項,需要的朋友可以參考下
    2016-03-03
  • PHP+Apache+Mysql環(huán)境搭建教程

    PHP+Apache+Mysql環(huán)境搭建教程

    這篇文章主要為大家詳細介紹了PHP+Apache+Mysql環(huán)境搭建教程,一步步實現(xiàn)php開發(fā)環(huán)境搭建,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Yii框架日志操作圖文與實例詳解

    Yii框架日志操作圖文與實例詳解

    這篇文章主要介紹了Yii框架日志操作,結(jié)合圖文與實例形式詳細分析了Yii日志操作相關(guān)配置、使用方法及操作注意事項,需要的朋友可以參考下
    2019-09-09

最新評論