PHP和JAVASCRIPT判断访客终端是电脑还是手机

作者: zms! 日期: 2016.07.14 本文发布于1354天前 分类: 高级技巧 相关:

PHP版

我们使用PHP的$_SERVER['HTTP_USER_AGENT']来获取手机用户浏览器的用户代理,然后匹配已有的各种手机浏览器代理库,如果含有匹配的关键字,则判断为手机(移动终端)用户。

function is_mobile() { 
    $user_agent = $_SERVER['HTTP_USER_AGENT']; 
    $mobile_agents = array("240x320","acer","acoon","acs-","abacho","ahong","airness","alcatel","amoi"
    "android","anywhereyougo.com","applewebkit/525","applewebkit/532","asus","audio"
    "au-mic","avantogo","becker","benq","bilbo","bird","blackberry","blazer","bleu"
    "cdm-","compal","coolpad","danger","dbtel","dopod","elaine","eric","etouch","fly "
    "fly_","fly-","go.web","goodaccess","gradiente","grundig","haier","hedy","hitachi"
    "htc","huawei","hutchison","inno","ipad","ipaq","iphone","ipod","jbrowser","kddi"
    "kgt","kwc","lenovo","lg ","lg2","lg3","lg4","lg5","lg7","lg8","lg9","lg-","lge-","lge9","longcos","maemo"
    "mercator","meridian","micromax","midp","mini","mitsu","mmm","mmp","mobi","mot-"
    "moto","nec-","netfront","newgen","nexian","nf-browser","nintendo","nitro","nokia"
    "nook","novarra","obigo","palm","panasonic","pantech","philips","phone","pg-"
    "playstation","pocket","pt-","qc-","qtek","rover","sagem","sama","samu","sanyo"
    "samsung","sch-","scooter","sec-","sendo","sgh-","sharp","siemens","sie-","softbank"
    "sony","spice","sprint","spv","symbian","tablet","talkabout","tcl-","teleca","telit"
    "tianyu","tim-","toshiba","tsm","up.browser","utec","utstar","verykool","virgin"
    "vk-","voda","voxtel","vx","wap","wellco","wig browser","wii","windows ce"
    "wireless","xda","xde","zte"); 
    $is_mobile = false
    foreach ($mobile_agents as $device) { 
        if (stristr($user_agent$device)) { 
            $is_mobile = true
            break
        } 
    } 
    return $is_mobile

上述代码中函数is_mobile()来判断用户终端类型,将收集到的当今各种手机的HTTP_USER_AGENT归结到数组$mobile_agents中,并进行匹配。使用时只需调用函数is_mobile()。如以下代码表示,当匹配用户为手机访问时,页面跳转到网站手机版m.helloweba.com。

if (is_mobile()) { 
    header('Location:http://m.helloweba.com'); 
else { 
    echo '请使用手机访问.'

Javascript版

您也可以直接在前端页面上加入一段Javascript脚本来判断用户的终端类型。Javascript也是通过获取浏览器的user-agent信息,然后匹配已有的user-agent信息库。

if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios|iOS|iPad|Backerry| 
WebOS|Symbian|Windows Phone|Phone)/i))) { 
    location.replace("http://m.helloweba.com"
}else{ 
    document.write("请使用手机访问."); 
} 

以上代码还不是很完善,有兴趣的朋友欢迎补充。


返回上一页


讨论区

您尚未 登录,或请 注册

登 录 注 册


你可能也喜欢

在MySQl数据库中给已有的数据表添加自增ID 2017.05.22,106 pv
针对搜索引擎来源跳转或显示内容 2016.12.13,4 pv
PHP+jQuery+Ajax多图片上传 2016.07.14,54 pv

PHP和JAVASCRIPT判断访客终端是电脑还是手机 2016.07.14,35 pv
从PHP到Node 聊一聊淘宝首页背后的技术 2016.06.14,2 pv
SQL去重操作、修改字段所有数据、复制字段所有数据等 2016.06.13,11 pv