这篇文章主要为大家详细介绍了PHP判断判访问设备是手机移动端还是PC电脑端,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。

随着网络进入移动互联网时代,我们的网站已经多设备预览种,所以作为程序员你必须懂得如何判断UA,因为这样才能给用户更好的体验,本文就来教大家使用php判断客户端是手机还是电脑!

其实很简单,通过浏览器访问网站时,浏览器会向服务器发送UA即(用户代理)。不同浏览器或者同一浏览器的不同版本、手机浏览器、电脑浏览器的UA都是不一样的。我们只要写代程序获取这段UA,然后判断UA是什么,然后就可以区分出客户端是手机还是电脑了。

当然了,这样的判断方法有很多,有使用JS判断的,我们下一节给大家讲,这里专门给大家讲下使用PHP判断的方法,简单的给大家讲2种方法:

第一种:

进入移动互联网时代,作为一名网络程序员,你必须懂得如何判断UA,因为这样才能给用户最好的体验,本文就来教大家使用php判断客户端是手机还是电脑!

其实很简单,通过浏览器访问网站时,浏览器会向服务器发送UA即(用户代理)。不同浏览器或者同一浏览器的不同版本、手机浏览器、电脑浏览器的UA都是不一样的。我们只要写代程序获取这段UA,然后判断UA是什么,然后就可以区分出客户端是手机还是电脑了。

第一种方法:<?php

function check_wap() {

if (isset($_SERVER['HTTP_VIA'])) return true;

if (isset($_SERVER['HTTP_X_NOKIA_CONNECTION_MODE'])) return true;

if (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID'])) return true;

if (strpos(strtoupper($_SERVER['HTTP_ACCEPT']),"VND.WAP.WML") > 0) {

// Check whether the browser/gateway says it accepts WML.

$br = "WML";

} else {

$browser = isset($_SERVER['HTTP_USER_AGENT']) ? trim($_SERVER['HTTP_USER_AGENT']) : '';

if(empty($browser)) return true;

$mobile_os_list=array('Google Wireless Transcoder','Windows CE','WindowsCE',

'Symbian','Android','armv6l','armv5','Mobile','CentOS','mowser','AvantGo',

'Opera Mobi','J2ME/MIDP','Smartphone','Go.Web','Palm','iPAQ');

$mobile_token_list=array('Profile/MIDP','Configuration/CLDC-',

'160×160','176×220','240×240','240×320','320×240','UP.Browser',

'UP.Link','SymbianOS','PalmOS','PocketPC','SonyEricsson','Nokia',

'BlackBerry','Vodafone','BenQ','Novarra-Vision','Iris','NetFront',

'HTC_','Xda_','SAMSUNG-SGH','Wapaka','DoCoMo','iPhone','iPod');

$found_mobile=checkSubstrs($mobile_os_list,$browser) ||

checkSubstrs($mobile_token_list,$browser);

if($found_mobile)

$br ="WML";

else $br = "WWW";

}

if($br == "WML") {

return true;

} else {

return false;

}

}

function checkSubstrs($list,$str){

$flag = false;

for($i=0;$i

if(strpos($str,$list[$i]) > 0){

$flag = true;

break;

}

}

return $flag;

}

if(check_wap()){

echo "wap";

}else{

echo "web";

}

?>

第二种方法:<?php

function isMobile(){

$useragent=isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';

$useragent_commentsblock=preg_match('|\(.*?\)|',$useragent,$matches)>0?$matches[0]:'';

function CheckSubstrs($substrs,$text){

foreach($substrs as $substr)

if(false!==strpos($text,$substr)){

return true;

}

return false;

}

$mobile_os_list=array('Google Wireless Transcoder','Windows CE',

'WindowsCE','Symbian','Android','armv6l','armv5','Mobile','CentOS','mowser',

'AvantGo','Opera Mobi','J2ME/MIDP','Smartphone','Go.Web','Palm','iPAQ');

$mobile_token_list=array('Profile/MIDP','Configuration/CLDC-','160×160',

'176×220','240×240','240×320','320×240','UP.Browser',

'UP.Link','SymbianOS','PalmOS','PocketPC','SonyEricsson',

'Nokia','BlackBerry','Vodafone','BenQ','Novarra-Vision',

'Iris','NetFront','HTC_','Xda_','SAMSUNG-SGH','Wapaka','DoCoMo','iPhone','iPod');

$found_mobile=CheckSubstrs($mobile_os_list,$useragent_commentsblock) ||

CheckSubstrs($mobile_token_list,$useragent);

if ($found_mobile){

return true;

}else{

return false;

}

}

if (isMobile())

echo '手机登录';

else

echo '电脑登录';

?>

到这里有朋友要说了:“怎么写的都是不能拿来就能使用的啊,我们都是小白,不能直接使用不会啊。”

那好吧,361源码网小编就好人做到底,给大家写个实例:

PHP判断UA类(加入公共文件并引入或者直接在页面中使用):function is_mobile(){

//正则表达式,批配不同手机浏览器UA关键词。

$regex_match="/(nokia|iphone|android|motorola|^mot\-|softbank|foma|docomo|kddi|up\.browser|up\.link|";

$regex_match.="htc|dopod|blazer|netfront|helio|hosin|huawei|novarra|CoolPad|webos|techfaith|palmsource|";

$regex_match.="blackberry|alcatel|amoi|ktouch|nexian|samsung|^sam\-|s[cg]h|^lge|ericsson|philips|sagem|wellcom|bunjalloo|maui|";

$regex_match.="symbian|smartphone|midp|wap|phone|windows ce|iemobile|^spice|^bird|^zte\-|longcos|pantech|gionee|^sie\-|portalmmm|";

$regex_match.="jig\s browser|hiptop|^ucweb|^benq|haier|^lct|opera\s*mobi|opera\*mini|320×320|240×320|176×220″;

$regex_match.=")/i";

return isset($_SERVER[‘HTTP_X_WAP_PROFILE’]) or isset($_SERVER[‘HTTP_PROFILE’]) or preg_match($regex_match, strtolower($_SERVER[‘HTTP_USER_AGENT’]));

//如果UA中存在上面的关键词则返回真。

}

以下是调用代码:

示例中的网址,请改为您自己的网址if($this->is_mobile()) {

//如果为真,则进行WAP页面。

header( “HTTP/1.1 301 Moved Permanently”);

header(“Location: http://m.ke361.com”);

}else {

//如果为假,则进行WEB页面。

header( “HTTP/1.1 301 Moved Permanently”);

header(“Location: http://www.ke361.com”);

}

到这里用PHP判断UA类型,是手机还是电脑访问的代码就给大家讲解完毕了,有需要的朋友可以自行研究。如果你还有不会的,可以在群里咨询和讨论哦。

以上就是PHP判断判访问设备是手机移动端还是PC电脑端的全部内容,希望对大家的学习和解决疑问有所帮助,也希望大家多多支持361模板网。

感谢打赏,我们会为大家提供更多优质资源!

php判断移动端和pc端访问_PHP判断判访问设备是手机移动端还是PC电脑端相关推荐

  1. PHP判断当前的设备是手机(Mobile)还是电脑(PC)

    在做web的时候,经常需要用到对移动设备的适配,当然可以直接把网站做成响应式蛾,但是如果不想这么做的话,可以使用php判断一下当前的设备是手机还是电脑. 方法一: /*** Test if the c ...

  2. php判断移动端和pc端访问_PHP判断是手机端还是PC端 PHP判断是否是微信浏览器

    本文实例为大家分享了PHP判断的两个实例,一是PHP判断是手机端还是PC端,二是PHP判断是否是微信浏览器,供大家参考,具体内容如下 1.判断是否是手机端 function isMobile() { ...

  3. 电脑群控Android手机技术,免费实现电脑端控制多台手机

    需要集线器,链接usb链接手机, 软件都是免费的: 两款软件实现 一个是沙盒 一个是airdroid电脑客户端

  4. php无法访问_php网站无法访问可能是什么原因

    php网站无法访问的原因可能是:1.php版本过低,如[require php>5.3.0],此时更换php到更高版本即可:2.数据库错误,此时需要检验数据库账号和用户名是否正确:3.网页的UR ...

  5. php无法访问_php突然不能访问的原因

    本地测试环境的php,一直以来运行得都很好,今天发现突然运行不了了,打开php后缀的网页时总是提示"找不到网页",但是明明网页是存在的.但是打开html的网页就没有问题. 出现这种 ...

  6. 使用VB制作一个简易通信录 电话号码查询器 电脑端通信录

    制作背景: 有手机,为什么还用电脑端的简易通信录? 办公一族,每天上班基本上都是对着电脑,左边一部电话,中间是电脑,右边是文件.如下图所示. 有很多电话是通过内线或者固定电话拨出的.因此,一本纸质的电 ...

  7. 响应html广告区分手机pc,typecho博客判断电脑PC和手机WAP端进行广告展示

    特别声明:本文为原创,可自由转载.引用,但需署名作者且注明文章出处,如有侵权请联系! 上一篇文章详细介绍了个人网站typecho博客申请添加投放百度联盟广告的具体步骤https://www.zyglz ...

  8. 在不同位置(客户端的终端设备,服务端,项目代码中)判断设备类型(PC、手机、微信等)

    判断设备类型的地方有很多,比如在服务端通过 Nginx 或 Apache 等判断,在项目中通过 UserAgent 判断.这个网站上有各种开源的解决方案 现在的移动设备类型比较一致了,只需要判断安卓. ...

  9. 电脑端(PC)按键精灵——4.控制命令(判断、循环、跳转)

    电脑端(PC)按键精灵--4.控制命令(判断.循环) 注:说了键盘.鼠标.其他命令还有安装内容,现在说下控制命令,也就是非常有用的判断和循环操作 按键精灵小白入门详细教程: 电脑端(PC)按键精灵-小 ...

最新文章

  1. Golang 元素值在经过通道传递时会被复制,这个复制是浅复制
  2. java post接口测试_接口测试——Java + TestNG 国家气象局接口(json解析)实例
  3. 优秀!21岁读博,26岁博士毕业即为副教授,同年又晋升教授和博导!
  4. Linux查看网卡状态
  5. Linux 笔记 - 第十八章 Linux 集群之(三)Keepalived+LVS 高可用负载均衡集群
  6. python好学吗 老程序员-想自学程序员,朋友推荐了python,靠谱吗?
  7. C++ 泛型编程(二):非类型模板参数,模板特化,模板的分离编译
  8. JBoss4.2.3GA 配置 Quartz
  9. deepin下深度终端使用ssh-agent(xshell中的xagent功能)
  10. 准备好跟机器人正面交锋了吗?
  11. 步进电机只能一个方向转?
  12. Win11系统中的Thumbs.db文件可以删除吗?
  13. 多表查询, 聚集查询和分组查询
  14. 经典解读 | Cascade R-CNN详细解读
  15. win10录屏_一分钟教你学会两种电脑录屏的方法,以后别再说不知道了
  16. [从零开始学FPGA编程-4]:快速入门篇 - 操作步骤1 - 常见可编程器件PROM、PLA、PAL、GAL、CPLD、FPGA
  17. 计算机本科科研什么项目,本科生做科研:大势所趋?
  18. 谷歌浏览器 android 55,谷歌浏览器55稳定版|谷歌浏览器(Chrome 55稳定版)下载v55.0.2883.87官方正式版 - 欧普软件下载...
  19. 十分钟搞定时间复杂度(算法的时间复杂度)
  20. Java ZipOutputStream 的使用,实现压缩文件

热门文章

  1. 法国推出新型卫星地图Geoportail!欲挑战Google
  2. 【自动驾驶】《Multi-modal Sensor Fusion for Auto Driving Perception: A Survey》论文阅读笔记
  3. 书生"商友营销引擎"升级计划
  4. iOS 4.2.1越狱工具RedSn0w 0.9.7b4更新发布
  5. 计算机组成原理-第二章 运算方法和运算器
  6. c语言中短整形字节,C语言中的整数(short,int,long)
  7. 飞硕家的宠物商店——需求分析
  8. 什么软件可以分割音频?看完这篇文章你就明白了
  9. 一文读懂网联-网联的业务方案和技术实现(1)
  10. H桥驱动电路原理【转】