当前位置: 首页 > 编程笔记 >

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

慕才
2023-03-14
本文向大家介绍PHP自动识别当前使用移动终端,包括了PHP自动识别当前使用移动终端的使用技巧和注意事项,需要的朋友参考一下

虽然现在利用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();//输出目前客户使用的终端 

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 我有一个大学项目,我必须编写一个Java应用程序。因为我们学习了使用Netbeans作为IDE的java,所以我决定使用这个IDE编写应用程序。 我在以前的电脑上从未遇到过这个错误。现在,当我在编写函数或任何其他块后打开“{}”时,按“return”后的行没有缩进,按“tab”也没有任何作用。 也许有人知道问题出在哪里? 谢谢:D

  • 问题内容: 我经常需要显示基于用户 实际 本地时间或受其影响的信息,该时间在各个时区不同。是否有获取用户当前时间和/或时区的可靠方法? 关键的问题: 服务器端代码基于网站主机或用户的ISP 客户端代码基于用户的系统时钟,太容易操作 关键问题: 是否需要查明用户的地理位置? ISP时间可以成为准确的指南吗? 用户的操作系统时钟可以改变还是可以被用户修改? 例子: 倒数: 只需1小时3分56秒! 问题

  • 我在我的领域面临着挑战,我需要一些建议。 我有一张树木年轮的照片。 要查看我想使用的照片,您可以从我的dropbox中进行检查:https://dl.dropboxusercontent.com/u/65873264/Sample.jpg 我想写一个宏/任务...其中程序将识别每个环并将其标记为投资回报率。我试图使这个任务使用一些插件:模板匹配,功能查找器和视觉抓取。但是这些环可能是极其可变的。

  • 问题内容: 如何知道被阻塞(不是视觉上而是通过检查线程本身)?有办法吗? 我正要去完成大学的最后一项毕业任务,该任务有很多图表,但是对Swing EDT(一般来说是Java)了解很少。 看一下这块: 如果我们执行一些修改块上gui组件的任务(包括调用另一个Thread),那已经是正确的方法了吗? 而且由于EDT是单线程环境,除了直接在GUI内部调用之外,还有其他(至少)一个阻止EDT的部分/示例。

  • 在最近的Google Play服务更新中,有人对活动识别API有问题吗? 我已经在一个应用程序中实现了它。在5.0更新之前,它工作得非常好。现在,当用户走路或坐着不动时,它会在车内返回:/ 并且根本不返回、或。 我应该知道的活动识别API是否有任何更改? 如果你需要更多的细节,请告诉我。

  • 问题内容: 我在同一父目录中有两个目录。调用父目录 的基础* 和孩子目录 阿尔法 和 喝彩 。我想用 bravo 代替 alpha 。最简单的方法是: * mv命令是原子的,但rm -rf不是。bash中有一种简单的方法可以用 bravo 原子替换 alpha 吗?如果没有,是否有复杂的方法? 附录: 顺便说一句,如果目录在短时间内不存在,这不是一个无法解决的问题。只有一个尝试访问alpha的地方