PHP代码判断设备是手机还是平板电脑(两种方法)


Posted in PHP onOctober 19, 2015

现在移动互联网越来越发达,很多的网站都普及了手机端浏览,为了更好的让网页在手机端显示,我们都选择了使用CSS媒体查询制作响应式模版,但这也有弊端,例如某些网站的结构是CMS类型的,太多的内容要显示,而使用CSS媒体查询设计响应式,只会隐藏但还是加载了,为了让手机端更快速的显示出内容,我们可以使用这个PHP判断手机设备代码,使用这个代码可以很方便的显示或不显示自定义的内容。

在做WEB开发的时候经常会需要用到对移动设备的页面匹配,当然可以直接把网站做成响应式的,但如果不想这么做的话,可以使用PHP对设备类型进行判断, 然后显示相应的界面和内容。今天分享一种使用 PHP 判断设备是否是手机/平板的方法,方法来源于WordPress(wp-includes/vars.php:125),适用于大部分类型的手机/平板判 断:

方法一:

/**
 * Test if the current browser runs on a mobile device (smart phone, tablet, etc.)
 *
 * @staticvar bool $is_mobile
 *
 * @return bool
 */
function wp_is_mobile() {
 static $is_mobile = null;
 
 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;
}

代码二:

这是PHP判断手机设备函数代码,复制到PHP函数库中调用:

<?php
function is_mobile() {
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$mobile_browser = Array(
"mqqbrowser", //手机QQ浏览器
"opera mobi", //手机opera
"juc","iuc",//uc浏览器
"fennec","ios","applewebKit/420","applewebkit/525","applewebkit/532","ipad","iphone","ipaq","ipod",
"iemobile", "windows ce",//windows phone
"240×320","480×640","acer","android","anywhereyougo.com","asus","audio","blackberry","blazer","coolpad" ,"dopod", "etouch", "hitachi","htc","huawei", "jbrowser", "lenovo","lg","lg-","lge-","lge", "mobi","moto","nokia","phone","samsung","sony","symbian","tablet","tianyu","wap","xda","xde","zte"
);
$is_mobile = false;
foreach ($mobile_browser as $device) {
if (stristr($user_agent, $device)) {
$is_mobile = true;
break;
}
}
return $is_mobile;
}?>

这是调用代码,可以加上if判断:

<?php if(is_mobile()):?>

设置手机端的内容

<?php endif; ?>

以上所述就是本文的全部内容,希望大家喜欢。

PHP 相关文章推荐
第十三节 对象串行化 [13]
Oct 09 PHP
第十节--抽象方法和抽象类
Nov 16 PHP
默默简单的写了一个模板引擎
Jan 02 PHP
解析php中的escape函数
Jun 29 PHP
php中time()和mktime()方法的区别
Sep 28 PHP
非常全面的php日期时间运算汇总
Nov 04 PHP
php简单获取复选框值的方法
May 11 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
Oct 11 PHP
php实现的简单中文验证码功能示例
Jan 03 PHP
PHP将身份证正反面两张照片合成一张图片的代码
Apr 08 PHP
ZendFramework2连接数据库操作实例
Apr 18 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 20 PHP
基于PHP实现假装商品限时抢购繁忙的效果
Oct 16 #PHP
php如何连接sql server
Oct 16 #PHP
Apache启动报错No space left on device: AH00023该怎么解决
Oct 16 #PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
Oct 16 #PHP
全面解读PHP的人气开发框架Laravel
Oct 15 #PHP
php示例详解Constructor Prototype Pattern 原型模式
Oct 15 #PHP
PHP经典面试题之设计模式(经常遇到)
Oct 15 #PHP
You might like
PHP扩展迁移为PHP7扩展兼容性问题记录
2016/02/15 PHP
用javascript实现给出的盒子的序列是否可连为一矩型
2007/08/30 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
2013/06/09 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
JavaScript写个贪吃蛇小游戏(超详细)
2020/03/17 Javascript
Vue 简单实现前端权限控制的示例
2020/12/25 Vue.js
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
[01:16]DOTA2小知识课堂 Ep.03 芒果树无伤肉山
2019/12/05 DOTA
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
pandas的连接函数concat()函数的具体使用方法
2019/07/09 Python
python读取指定字节长度的文本方法
2019/08/27 Python
浅谈PyTorch中in-place operation的含义
2020/06/27 Python
Python中过滤字符串列表的方法
2020/12/22 Python
深深扎根运动世界的生活品牌:Tillys
2017/10/30 全球购物
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
大一新生学期自我评价
2014/04/09 职场文书
大学生学雷锋活动总结
2014/06/26 职场文书
个人存款证明书
2014/10/18 职场文书
2015年元旦文艺晚会总结(学院)
2014/11/28 职场文书
六年级语文下册教学计划
2015/01/22 职场文书
go语言求任意类型切片的长度操作
2021/04/26 Golang
vue使用refs获取嵌套组件中的值过程
2022/03/31 Vue.js
vue中div禁止点击事件的实现
2022/04/02 Vue.js