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 curl常见错误:SSL错误、bool(false)
Dec 28 PHP
php函数array_merge用法一例(合并同类数组)
Feb 03 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
Jun 03 PHP
php分割合并两个字符串的函数实例
Jun 19 PHP
PHP使用ODBC连接数据库的方法
Jul 18 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
Jul 31 PHP
PHP实现的DES加密解密实例代码
Apr 06 PHP
Yii全局函数用法示例
Jan 22 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
Jan 24 PHP
PHP封装函数实现生成随机的字符串验证码
Jan 24 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
Oct 17 PHP
PHP ADODB实现分页功能简单示例
May 25 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
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
2016/07/07 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
php实现socket推送技术的示例
2017/12/20 PHP
Some tips of wmi scripting in jscript (1)
2007/04/03 Javascript
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
前台js调用后台方法示例
2013/12/02 Javascript
简介alert()与console.log()的不同
2015/08/26 Javascript
浅谈javascript中的constructor
2016/06/08 Javascript
javascript动画系列之模拟滚动条
2016/12/13 Javascript
原生js验证简洁注册登录页面
2016/12/17 Javascript
angular中的http拦截器Interceptors的实现
2017/02/21 Javascript
jQuery模拟窗口抖动效果
2017/03/15 Javascript
JavaScript实现自动跳转文本功能
2017/05/25 Javascript
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
2017/06/26 jQuery
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
2018/09/13 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
django 发送手机验证码的示例代码
2018/04/25 Python
python爬虫框架scrapy实现模拟登录操作示例
2018/08/02 Python
python实现kmp算法的实例代码
2019/04/03 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
python实现小程序推送页面收录脚本
2020/04/20 Python
python中Django文件上传方法详解
2020/08/05 Python
英国在线发型和美容产品商店:Beauty Cutie
2019/04/27 全球购物
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
将时尚融入珠宝:Adornmonde
2019/10/17 全球购物
新加坡鲜花速递/新加坡网上花店:Ferns N Petals
2020/08/29 全球购物
外企测试工程师面试题
2015/02/01 面试题
机械设计及其自动化专业推荐信
2013/10/31 职场文书
冰淇淋店的创业计划书
2014/02/07 职场文书
学生打架检讨书
2014/02/14 职场文书
小学运动会开幕词
2016/03/04 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server
Nginx报错104:Connection reset by peer问题的解决及分析
2022/07/23 Servers