Вход Регистрация
Файл: vendor/whichbrowser/parser/src/Analyser/Header.php
Строк: 112
<?php

namespace WhichBrowserAnalyser;

use 
WhichBrowserConstants;
use 
WhichBrowserParser;

trait 
Header
{
    private function &
analyseHeaders()
    {
        
/* Analyse the main useragent header */

        
if ($header $this->getHeader('User-Agent')) {
            
$this->analyseUserAgent($header);
        }


        
/* Analyse secondary useragent headers */

        
if ($header $this->getHeader('X-Original-User-Agent')) {
            
$this->additionalUserAgent($header);
        }
        
        if (
$header $this->getHeader('X-Device-User-Agent')) {
            
$this->additionalUserAgent($header);
        }
        
        if (
$header $this->getHeader('Device-Stock-UA')) {
            
$this->additionalUserAgent($header);
        }
        
        if (
$header $this->getHeader('X-OperaMini-Phone-UA')) {
            
$this->additionalUserAgent($header);
        }

        if (
$header $this->getHeader('X-UCBrowser-Device-UA')) {
            
$this->additionalUserAgent($header);
        }
        

        
/* Analyse browser specific headers */

        
if ($header $this->getHeader('X-OperaMini-Phone')) {
            
$this->analyseOperaMiniPhone($header);
        }
        
        if (
$header $this->getHeader('X-UCBrowser-Phone-UA')) {
            
$this->analyseOldUCUserAgent($header);
        }
        
        if (
$header $this->getHeader('X-UCBrowser-UA')) {
            
$this->analyseNewUCUserAgent($header);
        }
        
        if (
$header $this->getHeader('X-Puffin-UA')) {
            
$this->analysePuffinUserAgent($header);
        }
        
        if (
$header $this->getHeader('Baidu-FlyFlow')) {
            
$this->analyseBaiduHeader($header);
        }
        

        
/* Analyse Android WebView browser ids */

        
if ($header $this->getHeader('X-Requested-With')) {
            
$this->analyseBrowserId($header);
        }
        

        
/* Analyse WAP profile header */

        
if ($header $this->getHeader('X-Wap-Profile')) {
            
$this->analyseWapProfile($header);
        }

        return 
$this;
    }



    private function 
analyseUserAgent($header)
    {
        new 
HeaderUseragent($header$this->data$this->options);
    }

    private function 
analyseBaiduHeader($header)
    {
        new 
HeaderBaidu($header$this->data);
    }

    private function 
analyseOperaMiniPhone($header)
    {
        new 
HeaderOperaMini($header$this->data);
    }

    private function 
analyseBrowserId($header)
    {
        new 
HeaderBrowserId($header$this->data);
    }

    private function 
analysePuffinUserAgent($header)
    {
        new 
HeaderPuffin($header$this->data);
    }

    private function 
analyseNewUCUserAgent($header)
    {
        new 
HeaderUCBrowserNew($header$this->data);
    }

    private function 
analyseOldUCUserAgent($header)
    {
        new 
HeaderUCBrowserOld($header$this->data);
    }

    private function 
analyseWapProfile($header)
    {
        new 
HeaderWap($header$this->data);
    }


    private function 
additionalUserAgent($ua)
    {
        
$extra = new Parser($ua);

        if (
$extra->device->type != ConstantsDeviceType::DESKTOP) {
            if (isset(
$extra->os->name)) {
                
$this->data->os $extra->os;
            }
            
            if (
$extra->device->identified) {
                
$this->data->device $extra->device;
            }
        }
    }


    private function 
getHeader($h)
    {
        
/* Find the header that matches */
        
foreach ($this->headers as $k => $v) {
            if (
strtolower($h) == strtolower($k)) {
                
/* And return the first 1024 bytes */
                
return substr($v01024);
            }
        }
    }
}
Онлайн: 0
Реклама