Главная | Форум | Реклама | Shop Flash-JePo | Картинки | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Как определить браузер посетителя (пользователя) сайта.
JeepersДата: Среда, 30.03.2011, 18:36 | Сообщение # 1




Администратор портала







Главный Админ
Сталин
Группа: Администраторы
Сообщений: 937
Награды: 0
Репутация: 13

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

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

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

[/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"]
  
[/font]

  [font="Comic Sans MS"]

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

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

[/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"]
  
[/font]

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


Требуются: Модераторы, Журналист новостей, Дизайнер!
Shop Flash-JePo
 
Реклама
  • Страница 1 из 1
  • 1
Поиск: