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 相关文章推荐
PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法
Mar 10 PHP
PHP中3种生成XML文件方法的速度效率比较
Oct 06 PHP
深入密码加salt原理的分析
Jun 06 PHP
php+ajax实现图片文件上传功能实例
Jun 17 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
Jul 15 PHP
对PHP新手的一些建议(PHP学习经验总结)
Aug 20 PHP
php生成RSS订阅的方法
Feb 13 PHP
php生成短域名函数
Mar 23 PHP
PHP判断IP并转跳到相应城市分站的方法
Mar 25 PHP
PHP中返回引用类型的方法
Apr 03 PHP
PHP中static关键字以及与self关键字的区别
Jul 01 PHP
PHP的文件操作与算法实现的面试题示例
Aug 10 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伪静态Rewrite设置之APACHE篇
2014/07/30 PHP
PHP常用设计模式之委托设计模式
2016/02/13 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
2019/10/21 PHP
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
Javascript中Event属性搜集整理
2013/09/17 Javascript
jquery实现ajax加载超时提示的方法
2016/07/23 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
webpack构建的详细流程探底
2018/01/08 Javascript
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
Vue项目中跨域问题解决方案
2018/06/05 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
15个顶级开源JavaScript框架和库
2018/10/10 Javascript
简单的React SSR服务器渲染实现
2018/12/11 Javascript
vue集成kindeditor富文本的实现示例代码
2019/06/07 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
2019/11/09 Javascript
带你使用webpack快速构建web项目的方法
2020/11/12 Javascript
[40:53]完美世界DOTA2联赛PWL S3 Magma vs DLG 第二场 12.18
2020/12/20 DOTA
pyqt5自定义信号实例解析
2018/01/31 Python
Python中的单下划线和双下划线使用场景详解
2019/09/09 Python
利用python实现AR教程
2019/11/20 Python
详解Python 实现 ZeroMQ 的三种基本工作模式
2020/03/24 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
AmazeUI 等分网格的实现示例
2020/08/25 HTML / CSS
JENNIFER BEHR官网:各种耳环和发饰
2020/06/07 全球购物
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
高中军训感言800字
2014/03/05 职场文书
我的梦中国梦演讲稿
2014/04/23 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
婚礼答谢词
2015/01/04 职场文书
因工资原因离职的辞职信范文
2015/05/12 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
frg-100简单操作(设置)说明
2022/04/05 无线电
SQL Server中搜索特定的对象
2022/05/25 SQL Server