最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php判斷用戶是否手機(jī)訪問(wèn)代碼

 更新時(shí)間:2015年06月08日 16:15:43   投稿:hebedich  
之前有一個(gè)案例用到判斷用戶是手機(jī)訪問(wèn)還是電腦訪問(wèn),然后給用戶展示相應(yīng)的頁(yè)面。最初是用js去做,但是準(zhǔn)確度不高,最終采用了PHP來(lái)做,經(jīng)測(cè)試基本上都能判斷準(zhǔn)確。

隨著移動(dòng)設(shè)備的普及,網(wǎng)站也會(huì)迎來(lái)越來(lái)越多移動(dòng)設(shè)備的訪問(wèn)。用適應(yīng)PC的頁(yè)面,很多時(shí)候?qū)κ謾C(jī)用戶不友好,那么有些時(shí)候,我們需要判斷用戶是否用手機(jī)訪問(wèn),如果是手機(jī)的話,就跳轉(zhuǎn)到指定的手機(jī)友好頁(yè)面。這里就介紹一下,如何判斷用戶是否用手機(jī)訪問(wèn)。

自定義的函數(shù)如下:

$agent = check_wap();
if( $agent )
{
 header('Location: http://m.fzitv.net');
 exit;
}
// check if wap
function check_wap(){
 // 先檢查是否為wap代理,準(zhǔn)確度高
 if(stristr($_SERVER['HTTP_VIA'],"wap")){
   return true;
 }
 // 檢查瀏覽器是否接受 WML.
 elseif(strpos(strtoupper($_SERVER['HTTP_ACCEPT']),"VND.WAP.WML") > 0){
   return true;
 }
 //檢查USER_AGENT
 elseif(preg_match('/(blackberry|configuration\/cldc|hp |hp-|htc |htc_|htc-|iemobile|kindle|midp|mmp|motorola|mobile|nokia|opera mini|opera |Googlebot-Mobile|YahooSeeker\/M1A1-R2D2|android|iphone|ipod|mobi|palm|palmos|pocket|portalmmm|ppc;|smartphone|sonyericsson|sqh|spv|symbian|treo|up.browser|up.link|vodafone|windows ce|xda |xda_)/i', $_SERVER['HTTP_USER_AGENT'])){
   return true;      
 }
 else{
   return false; 
 }
}

再來(lái)一個(gè)從PHP框架剝離的判斷是否為手機(jī)移動(dòng)終端的函數(shù):

function is_mobile_request() 
{ 
$_SERVER['ALL_HTTP'] = isset($_SERVER['ALL_HTTP']) ? $_SERVER['ALL_HTTP'] : ''; 
$mobile_browser = '0'; 
if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|iphone|ipad|ipod|android|xoom)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) 
 $mobile_browser++; 
if((isset($_SERVER['HTTP_ACCEPT'])) and (strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml') !== false)) 
 $mobile_browser++; 
if(isset($_SERVER['HTTP_X_WAP_PROFILE'])) 
 $mobile_browser++; 
if(isset($_SERVER['HTTP_PROFILE'])) 
 $mobile_browser++; 
$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4)); 
$mobile_agents = array( 
   'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac', 
   'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno', 
   'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-', 
   'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-', 
   'newt','noki','oper','palm','pana','pant','phil','play','port','prox', 
   'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar', 
   'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-', 
   'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp', 
   'wapr','webc','winw','winw','xda','xda-' 
   ); 
if(in_array($mobile_ua, $mobile_agents)) 
 $mobile_browser++; 
if(strpos(strtolower($_SERVER['ALL_HTTP']), 'operamini') !== false) 
 $mobile_browser++; 
// Pre-final check to reset everything if the user is on Windows 
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows') !== false) 
 $mobile_browser=0; 
// But WP7 is also Windows, with a slightly different characteristic 
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows phone') !== false) 
 $mobile_browser++; 
if($mobile_browser>0) 
 return true; 
else
 return false; 
}

再給大家分享一個(gè)個(gè)人使用的

function isPhone() {
  // 如果有HTTP_X_WAP_PROFILE則一定是移動(dòng)設(shè)備
  if (isset($_SERVER['HTTP_X_WAP_PROFILE'])) {
    return true;
  }
  //如果via信息含有wap則一定是移動(dòng)設(shè)備,部分服務(wù)商會(huì)屏蔽該信息
  if (isset($_SERVER['HTTP_VIA'])) {
    //找不到為flase,否則為true
    if(stristr($_SERVER['HTTP_VIA'], "wap"))
    {
      return true;
    }
  }
  //腦殘法,判斷手機(jī)發(fā)送的客戶端標(biāo)志,兼容性有待提高
  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',
      'phone',
    );
    // 從HTTP_USER_AGENT中查找手機(jī)瀏覽器的關(guān)鍵字
    if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {
      return true;
    }
  }
  //協(xié)議法,因?yàn)橛锌赡懿粶?zhǔn)確,放到最后判斷
  if (isset($_SERVER['HTTP_ACCEPT'])) {
    // 如果只支持wml并且不支持html那一定是移動(dòng)設(shè)備
    // 如果支持wml和html但是wml在html之前則是移動(dòng)設(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;
}

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • 利用PHPExcel導(dǎo)出excel文件的方法詳解

    利用PHPExcel導(dǎo)出excel文件的方法詳解

    PHPExcel是一款非常強(qiáng)大的PHP操作EXCEL庫(kù),使用PHPExcel可以幫助我們簡(jiǎn)單、高效實(shí)現(xiàn)從Excel讀取Excel的數(shù)據(jù)和導(dǎo)出數(shù)據(jù)到Excel。本文為大家介紹了PHPExcel導(dǎo)出excel文件的用法,需要的可以參考一下
    2022-08-08
  • PHP使用Pear發(fā)送郵件(Windows環(huán)境)

    PHP使用Pear發(fā)送郵件(Windows環(huán)境)

    這篇文章主要介紹了在Windows環(huán)境下,PHP使用Pear發(fā)送郵件的實(shí)現(xiàn)方法,以及Windows下安裝PHP Pear的詳細(xì)步驟,感興趣的小伙伴們可以參考一下
    2016-01-01
  • 降低PHP Redis內(nèi)存占用

    降低PHP Redis內(nèi)存占用

    本文主要介紹了降低PHP Redis內(nèi)存占用的方法。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-03-03
  • php swoole多進(jìn)程/多線程用法示例【基于php7nts版】

    php swoole多進(jìn)程/多線程用法示例【基于php7nts版】

    這篇文章主要介紹了php swoole多進(jìn)程/多線程用法,結(jié)合實(shí)例形式分析了基于php7nts版使用swoole進(jìn)行多線程創(chuàng)建、調(diào)用相關(guān)操作技巧,需要的朋友可以參考下
    2019-08-08
  • php接口報(bào)錯(cuò)解決分析記錄

    php接口報(bào)錯(cuò)解決分析記錄

    記一次解決php接口報(bào)錯(cuò) The GET method is not supported for this route. Supported methods: POST.的bug,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • php判斷l(xiāng)inux下程序問(wèn)題實(shí)例

    php判斷l(xiāng)inux下程序問(wèn)題實(shí)例

    這篇文章主要介紹了php判斷l(xiāng)inux下程序問(wèn)題,可有效的控制Linux下crontab控制程序定時(shí)執(zhí)行時(shí)資源調(diào)配問(wèn)題,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-07-07
  • php設(shè)計(jì)模式 Builder(建造者模式)

    php設(shè)計(jì)模式 Builder(建造者模式)

    將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使用同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示
    2011-06-06
  • 詳解PHP實(shí)現(xiàn)異步調(diào)用的4種方法

    詳解PHP實(shí)現(xiàn)異步調(diào)用的4種方法

    這篇文章主要為大家詳細(xì)介紹PHP實(shí)現(xiàn)異步調(diào)用的4種方法,感興趣的小伙伴們可以參考一下
    2016-03-03
  • php中bind_param()函數(shù)用法分析

    php中bind_param()函數(shù)用法分析

    這篇文章主要介紹了php中bind_param()函數(shù)用法,簡(jiǎn)單分析了bind_param()函數(shù)的功能、參數(shù)、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-03-03
  • php實(shí)現(xiàn)多張圖片上傳加水印技巧

    php實(shí)現(xiàn)多張圖片上傳加水印技巧

    php如何實(shí)現(xiàn)多張圖片上傳加水印,接下來(lái)為大家詳細(xì)介紹下,感興趣的朋友可以參考下哈,希望對(duì)你學(xué)習(xí)php有所幫助
    2013-04-04

最新評(píng)論

银川市| 中宁县| 桑植县| 遂平县| 涿州市| 尤溪县| 阳山县| 炎陵县| 商城县| 喜德县| 宾阳县| 泌阳县| 邹平县| 长治县| 翼城县| 安塞县| 修武县| 二连浩特市| 东乌| 微博| 旬邑县| 连江县| 屯门区| 上林县| 丹阳市| 龙川县| 玉屏| 社旗县| 论坛| 桐梓县| 杭锦旗| 剑河县| 霍邱县| 天水市| 孝感市| 礼泉县| 涿鹿县| 德州市| 开江县| 英吉沙县| 双牌县|