Вход Регистрация
Файл: files/AboutGuest.php
Строк: 63
<?php
/*
 * Данные о пользователе сайта
 * Автор: Mowshon
 */
class AboutGuest {
    
    public 
$is_browser False;
    public 
$is_mobile False;
    public 
$is_robot False;
    
    public 
$browsers = array();
    public 
$operating_systems = array();
    public 
$mobiles = array();
    public 
$robots = array();
    
    public 
$ip '';
    public 
$version '';
    public 
$browser '';
    public 
$browser_full_name '';
    public 
$operating_system '';
    public 
$os_version '';
    public 
$robot '';
    public 
$mobile '';
    
    public function 
__construct() {
        
// Загружаем массивы для работы с данными
        
$files = array('browsers''operating_systems''mobiles''robots');
        foreach(
$files as $file) {
            
$this->load$file );
        }
        
        
// Данные пользователя
        
$this->agent = (@$_SERVER['HTTP_USER_AGENT'])? $_SERVER['HTTP_USER_AGENT'] : '';
        
// Вызываем методы для заполнения данных пользователя
        
$setMethods = array('set_ip''set_browser''set_operating_system''set_robot''set_mobile');
        foreach(
$setMethods as $method) {
            
$this->$method();
        }
    }
    
    private function 
load$file_and_array_name ) {
        
/*
         * Загружает массивы из папки с массивами
         */
        
$Load = require_once( dirname__FILE__ ) ) . '/arrays/'.$file_and_array_name.'.php';
        
$this->$file_and_array_name = (!count($Load))? array() : $Load;
    }
    
    private function 
set_ip() {
        
$this->ip $_SERVER['REMOTE_ADDR'];
        return 
True;
    }
    
    
    private function 
set_browser() {
        if (
is_array($this->browsers) and count($this->browsers) > 0) {
            foreach (
$this->browsers as $key => $val) {
                if (
preg_match("|".preg_quote($key).".*?([0-9.]+)|i"$this->agent$match)) {
                    
$this->is_browser TRUE;
                    
$this->version $match[1];
                    
$this->browser $val;
                    
$this->browser_full_name $match[0];
                    return 
True;
                }
            }
        }
        return 
False;
    }
    
    private function 
set_operating_system() {
        if (
is_array($this->operating_systems) AND count($this->operating_systems) > 0) {
            foreach (
$this->operating_systems as $key => $val) {
                if (
preg_match("|".preg_quote($key).".*?([a-zA-Z]?[0-9.]+)|i"$this->agent$match)) {
                    
$this->operating_system $val;
                    
$this->os_version $match[1];
                    return 
True;
                }
            }
        }
        
$this->operating_system 'Unknown';
    }
    
    private function 
set_robot() {
        if (
is_array($this->robots) AND count($this->robots) > 0) {
            foreach (
$this->robots as $key => $val) {
                if (
preg_match("|".preg_quote($key)."|i"$this->agent)) {
                    
$this->is_robot TRUE;
                    
$this->robot $val;
                    return 
TRUE;
                }
            }
        }
        return 
FALSE;
    }
    
    private function 
set_mobile() {
        if (
is_array($this->mobiles) AND count($this->mobiles) > 0) {
            foreach (
$this->mobiles as $key => $val) {
                if (
FALSE !== (strpos(strtolower($this->agent), $key))) {
                    
$this->is_mobile TRUE;
                    
$this->mobile $val;
                    return 
TRUE;
                }
            }
        }
        return 
FALSE;
    }

}

?>
Онлайн: 0
Реклама