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 Session变量不能传送到下一页的解决方法
Nov 27 PHP
php在线代理转向代码
May 05 PHP
php遍历文件夹和文件列表示例分享
Mar 11 PHP
php定界符
Jun 19 PHP
使用PHP实现阻止用户上传成人照片或者裸照
Dec 25 PHP
PHP+APACHE实现网址伪静态
Feb 22 PHP
PHP实现搜索相似图片
Sep 22 PHP
Yii框架连接mongodb数据库的代码
Jul 27 PHP
PHP foreach遍历多维数组实现方式
Nov 16 PHP
PHP中快速生成随机密码的几种方式
Apr 17 PHP
PHP中的empty、isset、isnull的区别与使用实例
Mar 22 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
Dec 16 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 UTF8 文件的签名问题
2009/10/30 PHP
Views rows style模板重写代码
2011/05/16 PHP
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
PHP中设置时区方法小结
2012/06/03 PHP
PHP Directory 函数的详解
2013/03/07 PHP
PHP 输出URL的快捷方式示例代码
2013/09/22 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
php将access数据库转换到mysql数据库的方法
2014/12/24 PHP
VBS通过WMI监视注册表变动的代码
2011/10/27 Javascript
用innerhtml提高页面打开速度的方法
2013/08/02 Javascript
JS动态调用方法名示例介绍
2013/12/18 Javascript
JavaScript中获取样式的原生方法小结
2014/10/08 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
jQuery新窗口打开外链接
2016/07/21 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
详解nodejs中express搭建权限管理系统
2017/09/15 NodeJs
vue中实现滚动加载更多的示例
2017/11/08 Javascript
js正则表达式校验指定字符串的方法
2018/07/23 Javascript
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
简单了解JavaScript作用域
2020/07/31 Javascript
[02:11]2014DOTA2 TI专访VG战队Fenrir:队伍气氛良好
2014/07/11 DOTA
解决谷歌搜索技术文章时打不开网页问题的python脚本
2013/02/10 Python
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
谈谈python中GUI的选择
2018/03/01 Python
对Python强大的可变参数传递机制详解
2019/06/13 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
2020/03/23 Python
keras中的loss、optimizer、metrics用法
2020/06/15 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
新加坡最受追捧的体验平台:Hapz
2018/01/01 全球购物
什么是属性访问器
2015/10/26 面试题
旷课检讨书1000字
2014/02/14 职场文书
三峡导游词
2015/01/31 职场文书
Python基础之元类详解
2021/04/29 Python
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python
原生JavaScript实现简单五子棋游戏
2021/06/28 Javascript