Главная | Форум | Статьи | Фaйлы| Картинки WoW | Профиль | Регистрация | Вход

[ Новые сообщения · Правила форума · Поиск · RSS ]

WoW-Info — информационный World of Warcraft портал

Как определить браузер посетителя (пользователя) сайта. - Форум

  • Сторінка 1 з 1
  • 1
Как определить браузер посетителя (пользователя) сайта.
DiyvolДата: Неділя, 19.12.2010, 01:46 | Сообщение # 1



Diyvol
ЗлОй-АйТИшник
Центурион
Группа: Best of the Best user Wow-info
Сообщений: 356

Замечания:

Оффлайн
Для чего это может быть использовано?
На мой взгляд это применимо для ведения статистики.
И так на ваш суд выносится такое решение. Логика проста, используя глобальный массив, который уже существует в PHP, а выглядит он так:
$_SERVER['HTTP_USER_AGENT']
Найдём, с помощью регулярного выражения совпадения, те которые характерны для каждого браузера. Дело в том, что этот глобальный массив возвращает строку в которой описаны такие характеристики как, название браузера, его версия, операционная система и некоторые другие, т.е. те данные (заголовки), которые посылает серверу клиент (браузер), с помощью которого подключается пользователь к серверу. Ну или проще сказать выходит в интернет. В этом скрипте для проверки были использованы последние версии браузеров:
"Opera"
"Google Chrome"
"Firefox"
"Netscape Navigator"
"Internet Explorer"
"Maxton"

Вариант 1
В результате работы, функция выводит на монитор название браузера с которого вы подключились к странице. Если браузер не определён функция выведет строку Всё остальное..

Листинг № 1 - Функция - определяет название браузера клиента.

Code
[/b][/font]

  [font="Comic Sans MS"]<?php  
  function brouse()  
  {  
      $r =  $_SERVER['HTTP_USER_AGENT'];  
      $arr = array("|Opera|",  
                   "|Chrome/|",  
                   "|Firefox/|",  
                   "|Navigator/|",  
                   "|MSIE|",  
                   "|MAXTHON|"  
                   );  
        
      $volums = array("Opera",  
                      "Google Chrome",  
                      "Firefox",  
                      "Netscape Navigator",  
                      "Internet Explorer",  
                      "Maxton"  
                      );  
        
        
      for($i=0; $i<count($arr); $i++)  
      {  
          if(preg_match($arr[$i], $r))  
          {  
             $a = $volums[$i];  
          }  
      }  
        
        
      if(!isset($a))  
      {  
        return "Всё остальное.";      
      }  
      return $a;  
  }  

  echo  brouse();  
  ?>
  [/font][font="Comic Sans MS"][b]
  [/b][/font]

  [font="Comic Sans MS"][b]

Вариант 2
В этом варианте представлена функция, которая имеет расширенные возможности. �' частности она возвращает массив, значениями, которого являются (при условии, что определены) операционная система на которой работает клиент, название браузера и его версия.

Листинг № 2 - Функция - определит операционную систему, название браузера и его версию.

Code
[/b][/font]  

  [font="Comic Sans MS"]<?php   
  function brouse_2()  
  {  
     $r = $_SERVER['HTTP_USER_AGENT'];  
     $d = array($r);  
       
      // паттерны для нахождения os  
     $os_p = array("|Windows\sNT\s5.1|",   
                  "|Windows\sNT\s5.0|",  
                  "|Windows\s98|",  
                  "|Linux\si686|",  
                  "|Windows\sNT\s6.1|",  
                  "|Windows\sNT\s6.0|");   

     $os = array("Windows XP",  
                 "Windows 2000",  
                 "Windows 98",  
                 "Linux",  
                 "Windows 7",  
                 "Windows Vista");  
       
     // Определяем OS  
     for($j=0; $j<count($os); $j++)  
     {  
         if(preg_match($os_p[$j], $r, $mas))  
         {  
            $h = str_replace($mas[0], $os[$j], $mas[0]);  
            array_push($d, $h);  
            
         }  

     }  
     // паттерны для нахождения браузера  
     $arr = array("|Opera/[0-9\.]*\s|",   
                   "|Chrome/[0-9\.]*\s|",   
                   "|Firefox/[0-9\.]*$|",   
                   "|Navigator/[0-9\.]*$|",   
                   "|MAXTHON\s[0-9\.]*(?=[)])|",  
                   "|MSIE\s[0-9\.]*|"  
                   );   

        
      for($i=0; $i<count($arr); $i++)   
      {   
          if(preg_match($arr[$i],  $r, $a))  
          {  
              // заполняем массив   
                 array_push($d, str_replace("/", " ", $a[0]));  
                
          }  
            
      }   
      return $d;  
  }  
  echo "<pre>";  
  print_r(brouse_2());   
  echo "</pre>";  
  ?>
  [/font][font="Comic Sans MS"][b]
  [/b][/font]

  [font="Comic Sans MS"][b]



Веб-дизайнер.
Работа, учеба и тренажерный зал. Жизнь это когда ты рад тому, что ты устал. Я не вижу смысла в жизни наркоманов. Наркотик в роли пастуха для всех этих баранов. Я иду вперед и не думаю сворачивать.
 
  • Сторінка 1 з 1
  • 1
Пошук:

Новые сообщения в темах
Сдам в аренду сервер и хостинг · (Хост Предложения)
Автор: redlaine
Последнее сообщение в 23:53
хаха :D · (Приколы)
Автор: [N1ke]Medved
Последнее сообщение в 18:40
Autobattle - новый боевой бот ... · (Боты для WoW)
Автор: terrikon
Последнее сообщение в 18:39
PvE руководство для Чернокнижн... · (Чернокнижник)
Автор: Darkensand
Последнее сообщение в 18:38
Пустой свиток (Часть 11) · (Истории WoW)
Автор: R_a_Z_o_R
Последнее сообщение в 18:37
Друиды в Катаклизме: Официальн... · (Друид)
Автор: Darkensand
Последнее сообщение в 18:37
[Баг 3.3.5] Фарм ледяных бадже... · (Читы для WoW)
Автор: Darkensand
Последнее сообщение в 18:35
FarmBot (Бот для фарма руды и ... · (Боты для WoW)
Автор: homma
Последнее сообщение в 18:34
Почему мы сражаемся: ролевая и... · (Воин)
Автор: Darkensand
Последнее сообщение в 18:34
Книги по Wold of Warcraft · (Истории WoW)
Автор: R_a_Z_o_R
Последнее сообщение в 18:33
Маг огня в Cataclysm · (Маг)
Автор: Darkensand
Последнее сообщение в 18:33
Как начать играть в World of W... · (Полезно знать)
Автор: Belkmondesh
Последнее сообщение в 18:32
Характеризация профессий · (Профессии)
Автор: Darkensand
Последнее сообщение в 18:31
Что значит для арканов бета те... · (Маг)
Автор: Darkensand
Последнее сообщение в 18:31

Контакты Контакты Copyright WoW-Info — World of Warcraft портал © 2025 | Условия и правила использования ресурса | Реклама / Услуги
WoW-Info портал.World of Warcraft портал — готовые сервера, сайты, картинки, аддоны, патчи, читы, баги, mangos, ArcEmu, TrinityCore, Warcraft 3, новости, Cataclysm...
Яндекс.Метрика Хостинг від uCoz