php 区分 移动设备,浏览器信息


有时我们会根据需求 需要区分访问者的来源。进行数据分析,这里提供了一个类。大致的可以获取相关的信息。

通过这个类。。可以获取到访问者使用的浏览器信息 ,设备信息,是否是在微信上,等等。

当然这里,你们也可以进行扩展。


<?php
/**
* User: up61
* Date: 2017/12/20
* Time: 上午11:31
* Desc: 成功来源于点滴
* Site: www.upwqy.com
*/

//用户代理作为对象属性
class MobileSniffer
{
   private $userAgent;
   private $device;
   private $browser;
   private $app;
   private $deviceLength;
   private $browserLength;
   private $appLength;

   public function __construct()
   {
       $this->userAgent = $_SERVER['HTTP_USER_AGENT'];
       $this->userAgent = strtolower($this->userAgent);

       echo $this->userAgent . "<br/>";

       $this->device = ['iphone', 'ipad', 'android', 'silk', 'blackberry', 'touch', 'postmanruntime', 'mac'];
       $this->browser = ['firebox', 'chrome', 'opera', 'msie', 'safari', 'blackberry', 'trident'];
       $this->app = ['micromessenger'];
       $this->deviceLength = count($this->device);
       $this->browserLength = count($this->browser);
       $this->appLength = count($this->app);

   }

   public function findDevice()
   {
       for ($uaSniff = 0; $uaSniff < $this->deviceLength; $uaSniff++) {
           if (strstr($this->userAgent, $this->device[$uaSniff])) {
               return $this->device[$uaSniff];
           }
       }
       return null;
   }

   public function findBrowser()
   {
       for ($uaSniff = 0; $uaSniff < $this->browserLength; $uaSniff++) {
           if (strstr($this->userAgent, $this->browser[$uaSniff])) {
               return $this->browser[$uaSniff];
           }
       }
       return null;
   }

   public function findApp()
   {
       for ($uaSniff = 0; $uaSniff < $this->appLength; $uaSniff++) {
           if (strstr($this->userAgent, $this->app[$uaSniff])) {
               return $this->app[$uaSniff];
           }
       }
       return null;
   }
}

<?php
/**
* User: up61
* Date: 2017/12/20
* Time: 上午11:50
* Desc: 成功来源于点滴
* Site: www.upwqy.com
*/

ini_set('display_errors','1');
error_reporting(E_ALL);
include_once 'MobileSniffer.php';
class Client
{
   private $mobileSniff;
   public function __construct()
   {
       $this->mobileSniff = new MobileSniffer();
       echo  " browser = ".$this->mobileSniff->findBrowser()."<br/>";
       echo  " device  = ".$this->mobileSniff->findDevice()."<br/>";
       echo  " app  = ".$this->mobileSniff->findApp()."<br/>";

   }
}
$trg = new Client();


来源: up61技术博客 欢迎分享 (QQ:529857614)

qq交流群:63739043 up61博客-php交流群

上一篇: PHP 各种排序的稳定性,时间复杂度、空间复杂度、稳定性总结
下一篇: PHP 根据距离规格 计算价格