龍巖易富通網(wǎng)絡(luò)科技有限公司

龍巖小程序開發(fā),龍巖分銷系統(tǒng)

php基于http協(xié)議訪問,判斷訪問來源iphone,android,微信瀏覽器,pc電腦

2015.09.10 | 800閱讀 | 0條評論 | php

當(dāng)我們采用php作為服務(wù)數(shù)據(jù)端口,為移動端,pc端提供數(shù)據(jù)接口的時候,可能會要求記錄接口訪問的來源是來之哪里.

例如:生成訂單,可能就需要記錄,以便做一些數(shù)據(jù)分析,為運營和推廣提供一些數(shù)據(jù)支持. 現(xiàn)在移動終端是太多的了,所以你也不得不做出這么多的判斷的了??聪逻@些移動終端的判斷吧:

function order_source() { 

$useragent = strtolower($_SERVER["HTTP_USER_AGENT"]); 

// iphone 

$is_iphone = strripos($useragent,'iphone'); if($is_iphone){ return 'iphone'; }

 // android 

$is_android = strripos($useragent,'android'); 

if($is_android){ return 'android'; } 

// 微信 

$is_weixin = strripos($useragent,'micromessenger'); 

if($is_weixin){ return 'weixin'; } 

// ipad 

$is_ipad = strripos($useragent,'ipad'); 

if($is_ipad){ return 'ipad'; } 

// ipod 

$is_ipod = strripos($useragent,'ipod'); 

if($is_ipod){ return 'ipod'; } 

// pc電腦 

$is_pc = strripos($useragent,'windows nt'); 

if($is_pc){ return 'pc'; } 

return 'other'; 

 根據(jù)自己的需求 ,來做一些特殊處理比如區(qū)分瀏覽器,這里就不做介紹了.

自己 echo $_SERVER["HTTP_USER_AGENT"] 出來看一下就明了. 如果判斷是不是屬于微信瀏覽器,在IOS系統(tǒng)和ANDROID下都通用的就是判斷HTTP_USER_AGENT中是否帶有:micromessenger
tip:
$res = strripos($str,$findstr) 此方法是在 $str 字符串中匹配 $findstr 最后一次出現(xiàn)的位置,匹配不到返回 false ,
也就是說假如匹配的字符串在首位出現(xiàn)就會返回0,那么 if($res){...} 就無法正確返回,
比較正確的寫法應(yīng)該是 if($res === 0 || $res > 0){...} ,(3個等于號是不僅是值相等還要數(shù)據(jù)類型相等),
當(dāng)然我們已經(jīng)知道哪些關(guān)鍵字是不會出現(xiàn)在首位,所以上面那種寫法就可以了.

贊 (

發(fā)表評論