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 相关文章推荐
web方式ftp
Oct 09 PHP
提升PHP执行速度全攻略(上)
Oct 09 PHP
一个从别的网站抓取信息的例子(域名查询)
Oct 09 PHP
PHP中对数据库操作的封装
Oct 09 PHP
vBulletin HACK----关于排版的两个HACK
Oct 09 PHP
PHP开发中常用的字符串操作函数
Feb 08 PHP
PHP可变函数的使用详解
Jun 14 PHP
php实现读取超大文件的方法
Jul 28 PHP
PHP中soap的用法实例
Oct 24 PHP
windows7下php开发环境搭建图文教程
Jan 06 PHP
使用Thinkphp框架开发移动端接口
Aug 05 PHP
laravel批量生成假数据的方法
Oct 09 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中使用Oracle数据库(4)
2006/10/09 PHP
我的论坛源代码(二)
2006/10/09 PHP
ThinkPHP查询语句与关联查询用法实例
2014/11/01 PHP
PHP封装的字符串加密解密函数
2015/12/18 PHP
php实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
js css样式操作代码(批量操作)
2009/10/09 Javascript
JAVASCRIPT style 中visibility和display之间的区别
2010/01/22 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
Uglifyjs(JS代码优化工具)入门 安装使用
2020/04/13 Javascript
Javasipt:操作radio标签详解
2013/12/30 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
文本域光标操作的jQuery扩展分享
2014/03/10 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
2014/04/12 Javascript
js实现鼠标划过给div加透明度的方法
2015/05/25 Javascript
jquery对复选框(checkbox)的操作汇总
2016/01/13 Javascript
json格式数据的添加,删除及排序方法
2016/01/21 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
iview给radio按钮组件加点击事件的实例
2017/09/30 Javascript
[51:15]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-GAMING
2014/05/22 DOTA
python中使用正则表达式的连接符示例代码
2017/10/10 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
python随机生成大小写字母数字混合密码(仅20行代码)
2020/02/01 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
Python3自动生成MySQL数据字典的markdown文本的实现
2020/05/07 Python
基于Python+QT的gui程序开发实现
2020/07/03 Python
Python爬虫进阶之爬取某视频并下载的实现
2020/12/08 Python
详解python中的异常和文件读写
2021/01/03 Python
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
C#如何判断当前用户是否输入某个域
2015/12/07 面试题
水利公司纪检监察自我鉴定
2014/02/25 职场文书
数字化校园建设方案
2014/05/03 职场文书
拔河比赛口号
2014/06/10 职场文书
同学会感言
2015/07/30 职场文书
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis
Consul在linux环境的集群部署
2022/04/08 Servers