Browser::checkBrowserOpera PHP Méthode

checkBrowserOpera() protected méthode

Determine if the browser is Opera or not (last updated 1.7)
protected checkBrowserOpera ( ) : boolean
Résultat boolean True if the browser is Opera otherwise false
    protected function checkBrowserOpera()
    {
        if (stripos($this->_agent, 'opera mini') !== false) {
            $resultant = stristr($this->_agent, 'opera mini');
            if (preg_match('/\\//', $resultant)) {
                $aresult = explode('/', $resultant);
                if (isset($aresult[1])) {
                    $aversion = explode(' ', $aresult[1]);
                    $this->setVersion($aversion[0]);
                }
            } else {
                $aversion = explode(' ', stristr($resultant, 'opera mini'));
                if (isset($aversion[1])) {
                    $this->setVersion($aversion[1]);
                }
            }
            $this->_browser_name = self::BROWSER_OPERA_MINI;
            $this->setMobile(true);
            return true;
        } else {
            if (stripos($this->_agent, 'opera') !== false) {
                $resultant = stristr($this->_agent, 'opera');
                if (preg_match('/Version\\/(1*.*)$/', $resultant, $matches)) {
                    $this->setVersion($matches[1]);
                } else {
                    if (preg_match('/\\//', $resultant)) {
                        $aresult = explode('/', str_replace("(", " ", $resultant));
                        if (isset($aresult[1])) {
                            $aversion = explode(' ', $aresult[1]);
                            $this->setVersion($aversion[0]);
                        }
                    } else {
                        $aversion = explode(' ', stristr($resultant, 'opera'));
                        $this->setVersion(isset($aversion[1]) ? $aversion[1] : "");
                    }
                }
                if (stripos($this->_agent, 'Opera Mobi') !== false) {
                    $this->setMobile(true);
                }
                $this->_browser_name = self::BROWSER_OPERA;
                return true;
            } else {
                if (stripos($this->_agent, 'OPR') !== false) {
                    $resultant = stristr($this->_agent, 'OPR');
                    if (preg_match('/\\//', $resultant)) {
                        $aresult = explode('/', str_replace("(", " ", $resultant));
                        if (isset($aresult[1])) {
                            $aversion = explode(' ', $aresult[1]);
                            $this->setVersion($aversion[0]);
                        }
                    }
                    if (stripos($this->_agent, 'Mobile') !== false) {
                        $this->setMobile(true);
                    }
                    $this->_browser_name = self::BROWSER_OPERA;
                    return true;
                }
            }
        }
        return false;
    }