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 相关文章推荐
phpBB BBcode处理的漏洞
Oct 09 PHP
类的另类用法--数据的封装
Oct 09 PHP
用PHP+java实现自动新闻滚动窗口
Oct 09 PHP
php防注
Jan 15 PHP
介绍php设计模式中的工厂模式
Jun 12 PHP
PHP mkdir()定义和用法
Jan 14 PHP
php中用date函数获取当前时间有误的解决办法
Aug 02 PHP
使用php批量删除数据库下所有前缀为prefix_的表
Jun 09 PHP
PHP获取数组长度或某个值出现次数的方法
Feb 11 PHP
php使用curl出现Expect:100-continue解决方法
Mar 03 PHP
如何通过Linux命令行使用和运行PHP脚本
Jul 29 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 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
基于PHP的简单采集数据入库程序【续篇】
2014/07/30 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
2015/08/01 PHP
ThinkPHP框架安全实现分析
2016/03/14 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
js parsefloat parseint 转换函数
2010/01/21 Javascript
javscript对象原型的一些看法
2010/09/19 Javascript
jquery 追加tr和删除tr示例代码
2013/09/12 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
2014/04/25 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
jQuery大于号(>)选择器的作用解释
2015/01/13 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
JavaScript通过字符串调用函数的实现方法
2015/03/18 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
JS继承之借用构造函数继承和组合继承
2016/09/07 Javascript
Thinkjs3新手入门之添加一个新的页面
2017/12/06 Javascript
AjaxFileUpload.js实现异步上传文件功能
2019/04/19 Javascript
详解async/await 异步应用的常用场景
2019/05/13 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
jQuery实现视频展示效果
2020/05/30 jQuery
[06:43]2018DOTA2国际邀请赛寻真——VGJ.Thunder
2018/08/11 DOTA
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
Python3实现从排序数组中删除重复项算法分析
2019/04/03 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
selenium判断元素是否存在的两种方法小结
2020/12/07 Python
浅谈css3中calc在less编译时被计算的解决办法
2017/12/04 HTML / CSS
Funko官方商店:源自美国,畅销全球搪胶收藏玩偶
2018/09/15 全球购物
什么是Oracle的后台进程background processes?都有哪些后台进程?
2012/04/26 面试题
表扬信格式
2014/01/12 职场文书
培训研修方案
2014/06/06 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
军事博物馆观后感
2015/06/05 职场文书
恋恋笔记本观后感
2015/06/16 职场文书
bat批处理之字符串操作的实现
2022/03/16 Python