PHP自动识别当前使用移动终端


Posted in PHP onMay 21, 2018

虽然现在利用jquery可以准确地判断出当前使用的是那种客户端,但是有时候根据功能和需求,我们可能需要用php来判断当前程序运行的环境,jquery在这里就不说了,这里直接讲讲php是怎么实现的,希望对大家有所帮助。

我们首先来判断当前运行环境是pc(电脑端)还是sp(手机,ipad端)

class self_test { 
  
 const PC = 'pc'; 
  
 const SP = 'sp'; 
  
 private $_splist = array('iPhone','Android','iPod','iPad','Tizen');//设置经常使用的sp终端,暂时常用的sp端就这几种,如果有的话大家也可以增加 
 
 private $terminal; 
  
 public function __construct(){ 
  $this->setTerminal();//通过setTerminal()方法获取到$terminal变量的值 
 } 
  
 /* 
  * function setTerminal() 
  * 获取终端信息 
  * @return string 
  */ 
  
 private function setTerminal(){ 
  $isSp = false; 
  foreach($this->_splist as $spname){ 
   if (strstr($_SERVER['HTTP_USER_AGENT'], $spname)) { 
    $isSp = true; 
    break; 
   } 
  } 
  return $this->terminal = ($isSp) ? self::SP : self::PC; 
 } 
  
 /* 
  * function PC_SP() 
  * 输出终端信息 
  * @return string 
  */ 
 public function PC_SP(){ 
  return $this->terminal; 
 } 
} 
 
$str = new self_test(); 
echo $str->PC_SP();//输出目前客户使用的是PC还是SP

2.准确判断当前的运行环境并输出客户端环境

class self_test {  
 const PC = 'pc';  
 const SP = 'sp';  
 private $_splist = array('iPhone','Android','iPod','iPad','Tizen');//设置经常使用的sp终端,暂时常用的sp端就这几种,如果有的话大家也可以增加 
 private $environment;  
 public function __construct(){ 
  $this->setEnvironment();//通过setEnvironment()方法获取到$terminal变量的值 
 } 
  
 /* 
  * function environment() 
  * 输出终端信息 
  * @return string 
  */ 
 public function environment(){ 
  return $this->environment; 
 } 
  
 /* 
  * function setEnvironment() 
  * 获取终端信息 
  * @return string 
  */ 
 private function setEnvironment(){ 
  $isSp = self::PC;//如果是PC端,就不需要判断是安卓还是apple了,所以只输出pc就可以 
  foreach($this->_splist as $spname){ 
   if (strstr($_SERVER['HTTP_USER_AGENT'], $spname)) { 
    $isSp = $spname; 
    break; 
   } 
  } 
  return $this->environment = $isSp; 
 } 
} 
$str = new self_test(); 
echo $str->environment();//输出目前客户使用的终端

以上代码都是自己运行成功之后贴出来分享的内容,所以大家可以在自己的环境下调试。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
站长助手-网站web在线管理程序 v1.0 下载
May 12 PHP
MySQL GBK→UTF-8编码转换
May 24 PHP
php中批量删除Mysql中相同前缀的数据表的代码
Jul 01 PHP
领悟php接口中interface存在的意义
Jun 27 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
Oct 17 PHP
php基本函数汇总
Jul 09 PHP
Yii rules常用规则示例
Mar 15 PHP
PHP二分查找算法示例【递归与非递归方法】
Sep 29 PHP
PHP封装XML和JSON格式数据接口操作示例
Mar 06 PHP
PHP Cli 模式设置进程名称的方法
Jun 12 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
Jan 07 PHP
PHP 出现 http500 错误的解决方法
Mar 09 PHP
PHP连接MySQL数据库并以json格式输出
May 21 #PHP
PHP 访问数据库配置通用方法(json)
May 20 #PHP
PHP生成腾讯云COS接口需要的请求签名
May 20 #PHP
windows环境下使用Composer安装ThinkPHP5
May 18 #PHP
PHP实现登录验证码校验功能
May 17 #PHP
php识别翻转iphone拍摄的颠倒图片
May 17 #PHP
php通过各种函数判断0和空
Jul 04 #PHP
You might like
在线增减.htpasswd内的用户
2006/10/09 PHP
php 中文处理函数集合
2008/08/27 PHP
PHP 单引号与双引号的区别
2009/11/24 PHP
php删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
php多任务程序实例解析
2014/07/19 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
php微信公众号开发之关键词回复
2018/10/20 PHP
javascript while语句和do while语句的区别分析
2007/12/08 Javascript
解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
2010/05/13 Javascript
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
js实现简单随机抽奖的方法
2015/01/27 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
2015/10/31 Javascript
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
基于socket.io+express实现多房间聊天
2016/03/17 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
微信小程序入门教程
2016/11/18 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
vue中的mescroll搜索运用及各种填坑处理
2019/10/30 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
[05:06]2017亚洲邀请赛DAC回顾片
2017/04/19 DOTA
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
python数据预处理之数据标准化的几种处理方式
2019/07/17 Python
Python Tkinter模块 GUI 可视化实例
2019/11/20 Python
pycharm中使用request和Pytest进行接口测试的方法
2020/07/31 Python
如何通过python检查文件是否被占用
2020/12/18 Python
时尚孕妇装:HATCH Collection
2019/09/24 全球购物
爱护公物标语
2014/06/24 职场文书
房地产经营管理专业自荐信
2014/09/02 职场文书
护士医德医风自我评价
2014/09/15 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
敬老院义诊活动总结
2015/05/07 职场文书
新学期家长寄语2016
2015/12/03 职场文书
mysql的MVCC多版本并发控制的实现
2021/04/14 MySQL