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 相关文章推荐
用PHP实现图象锐化代码
Jun 14 PHP
PHP下一个非常全面获取图象信息的函数
Nov 20 PHP
解析关于wamp启动是80端口被占用的问题
Jun 21 PHP
PHP中curl_setopt函数用法实例分析
Apr 16 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
Dec 08 PHP
PHP简单实现生成txt文件到指定目录的方法
Apr 25 PHP
Yii2框架数据库简单的增删改查语法小结
Aug 31 PHP
PHP图像识别技术原理与实现
Oct 27 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
分享5个非常有用的Laravel Blade指令
May 30 PHP
PHP实现的ID混淆算法类与用法示例
Aug 10 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
May 05 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基础知识:类与对象(1)
2006/12/13 PHP
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
用javascript动态调整iframe高度的方法
2007/03/06 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
2013/07/17 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
javascript关于继承解析
2016/05/10 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
关于vue.js v-bind 的一些理解和思考
2017/06/06 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
jQuery实现弹窗下底部页面禁止滑动效果
2017/12/19 jQuery
JS判断字符串是否为整数的方法--简单的正则判断
2018/07/23 Javascript
详解React中合并单元格的正确写法
2019/01/08 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
vue 解决addRoutes多次添加路由重复的操作
2020/08/04 Javascript
vue实现井字棋游戏
2020/09/29 Javascript
tensorflow实现图像的裁剪和填充方法
2018/07/27 Python
python随机模块random使用方法详解
2020/02/14 Python
Python查找不限层级Json数据中某个key或者value的路径方式
2020/02/27 Python
Python socket连接中的粘包、精确传输问题实例分析
2020/03/24 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
python中使用np.delete()的实例方法
2021/02/01 Python
介绍一下UNIX启动过程
2013/11/14 面试题
就业自荐书
2013/12/05 职场文书
公司成立感言
2014/01/11 职场文书
大学运动会加油稿200字(5篇)
2014/09/27 职场文书
单方投资意向书
2015/05/11 职场文书
机器人瓦力观后感
2015/06/12 职场文书
婚礼双方父亲致辞
2015/07/27 职场文书
2016年领导干部正风肃纪心得体会
2015/10/09 职场文书
SQL中的三种去重方法小结
2021/11/01 SQL Server
Echarts如何重新渲染实例详解
2022/05/30 Javascript
Springboot中如何自动转JSON输出
2022/06/16 Java/Android
python数字图像处理数据类型及颜色空间转换
2022/06/28 Python