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 相关文章推荐
默默简单的写了一个模板引擎
Jan 02 PHP
php 注释规范
Mar 29 PHP
php图片处理函数获取类型及扩展名实例
Nov 19 PHP
php上传文件问题汇总
Jan 30 PHP
PHP滚动日志的代码实现
Jun 10 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
Mar 23 PHP
PHP编程 SSO详细介绍及简单实例
Jan 13 PHP
360搜索引擎自动收录php改写方案
Apr 28 PHP
PHP封装的简单连接MongoDB类示例
Feb 13 PHP
PHP实现微信小程序用户授权的工具类示例
Mar 05 PHP
laravel通用化的CURD的实现
Dec 13 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
Nov 27 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解决URL中文GBK乱码问题的两种方法
2014/06/03 PHP
php字符串按照单词进行反转的方法
2015/03/14 PHP
extjs3 combobox取value和text案例详解
2013/02/06 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
jQuery.each使用详解
2015/07/07 Javascript
jQuery html表格排序插件tablesorter使用方法详解
2017/02/10 Javascript
基于JS实现翻书效果的页面切换样式
2017/02/16 Javascript
详解如何用模块化的方式写vuejs
2017/12/16 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
vue实现滑动超出指定距离回顶部功能
2019/07/31 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
加速vue组件渲染之性能优化
2020/04/09 Javascript
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
常用python数据类型转换函数总结
2014/03/11 Python
Python的requests网络编程包使用教程
2016/07/11 Python
Python正则表达式如何进行字符串替换实例
2016/12/28 Python
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
2018/07/26 Python
解决Python 使用h5py加载文件,看不到keys()的问题
2019/02/08 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
2020/02/28 Python
Python2 与Python3的版本区别实例分析
2020/03/30 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
2020/07/20 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
Boston Proper官网:美国女装品牌
2017/10/30 全球购物
奥地利智能家居和智能生活网上商店:tink.at
2019/10/07 全球购物
中学生英语演讲稿
2014/04/26 职场文书
冰雪公主观后感
2015/06/16 职场文书
运动会广播稿300字
2015/08/19 职场文书
外出考察学习心得体会
2016/01/18 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
python3 hdf5文件 遍历代码
2021/05/19 Python
Python selenium的这三种等待方式一定要会!
2021/06/10 Python
Python实现DBSCAN聚类算法并样例测试
2021/06/22 Python
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers