Автор Тема: Грамотно выковорить Агента и Операционку из хедеров  (Прочитано 2979 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Собственно пишу небольшой собственный счетчик, а то спайлог половину важных функция только за деньги дает....
В общем: надо как-то грамотно выдирать Название Браузера и Операционную систему из хедеров, если кто занимался,то подкиньте код
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн NAS

  • Неопытный юзер
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2951
  • +1/-0
  • 1
    • Просмотр профиля
    • http://nhouse.ru
а может hotlog ?

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
NAS
Который постоянно падает логотип надо отображать, ну уж нет,
действую по схеме "все свое ношу с собой" :)
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
pear::net::useragent::detect
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн NAS

  • Неопытный юзер
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2951
  • +1/-0
  • 1
    • Просмотр профиля
    • http://nhouse.ru
А может потратить 10$ и купить статистику ?

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Цитировать
Макс:
pear::net::useragent::detect


<? 
include(
"detect.php");
$c=new Net_UserAgent_Detect();
echo 
"<pre>";
print_r($c);
?>

Очень порадовал результат выполнения:
Цитировать

            [ie] => 1
            [ie3] =>
            [ie4] =>
            [ie4up] => 1
            [ie5] =>
            [ie5_5] =>
            [ie5up] => 1
            [ie6] => 1
            [ie6up] => 1

и
Цитировать

            [win] => 1
            [win95] =>
            [win16] =>
            [win31] =>
            [win9x] =>
            [win98] =>
            [winme] =>
            [win2k] =>
            [winnt] => 1
            [winxp] => 9
.....цензура.......
[reliantunix] => 35
[win32] => 1
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн semya

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
я юзаю эти две функции... иногда бывают глюки но в 98% случаев все отрабатывает отлично.

function str_to_os($browser_string)
    {

       
$os=array(

                  
"Mac68K",
                  
"MacOSX",
                  
"MacPPC",
                  
"WinME",
                  
"Win16",
                  
"Win95",
                  
"Win98",
                  
"Win2000",
                  
"WinXP",
                  
"WinNT",
                  
"Unix",
                  
"Linux",
                  
"Amiga",
                  
"Win32",
                  
"WinCE",
                  
"FreeBSD",
                  
"BeOS",
                  
"OS/2"

                  
);

        
$os_pattern=array(

                  
"68K"=>0,
                  
"Mac OS X"=>1,
                  
"PPC"=>2,
                  
"Win 9x 4.90"=>3,
                  
"Win3.11"=>4,
                  
"Win95"=>5,
                  
"Win98"=>6,
                  
"Windows NT 5.0"=>7,
                  
"Windows NT 5.1"=>8,
                  
"WinNT4.0"=>9,
                  
"Win16"=>4,
                  
"Windows 95"=>5,
                  
"Windows 98"=>6,
                  
"Windows NT 4.0"=>9,
                  
"Windows NT"=>9,
                  
"Unix"=>10,
                  
"X11"=>11,
                  
"Linux"=>11,
                  
"AmigaOS5.0"=>12,
                  
"AmigaOS 3.1"=>12,
                  
"Mac_68000"=>0,
                  
"Mac_PowerPC"=>2,
                  
"Windows 3.1"=>4,
                  
"Win 32"=>13,
                  
"Windows CE"=>14,
                  
"Win3.1"=>4,
                  
"Win32"=>13,
                  
"Windows XP"=>8,
                  
"FreeBSD"=>15,
                  
"BeOS"=>16,
                  
"Win2000"=>7,
                  
"OS/2"=>17,
                  
"SunOS"=>11,
                  
"WinNT5.0"=>7,
                  
"WinNT5.1"=>8,
                  
"Win9x 4.90"=>3,
                  
"Mac_OSX"=>1,
                  
"Windows 2000"=>7,
                  
"Windows ME"=>3,
                  
"Windows/32"=>13,
                  
"WinNT"=>9

                  
);

       
$found="Other";
       foreach (
$os_pattern as $pattern=>$os_num)
       {

           if (
stristr($browser_string,$pattern))
           {

               
$found=$os[$os_num];
               break;

               }

           }

       return 
$found;

       }

    function 
identify_browser($agent)
    {

        if (
eregi(\'Opera.([0-9].[0-9]{1,2})\',$agent,$version)):
            $browser_type="Opera";
            $browser_version=$version[1];

        elseif (eregi(\'MSIE.([0-9].[0-9]{1,2})\',$agent,$version)):
            $browser_type="IE";
            $browser_version=$version[1];

        elseif (eregi(\'Netscape([0-9])\',$agent,$version) or ereg(\'Netscape/([0-9])\',$agent,$version)):
            $browser_type="Netscape";
            $browser_version=$version[1];

        elseif (eregi(\'Gecko\',$agent)):
            $browser_type="Mozilla";
            if (eregi(\'rv:(.*))\',$agent,$version))
            $browser_version=$version[1];
            else
            $browser_version="";

        elseif (eregi(\'Mozilla/([0-9].[0-9]{1,2})\',$agent,$version)):
            $browser_type="Netscape";
            $browser_version=$version[1];

        elseif (eregi(\'bot\',$agent)):
            $browser_type="Bot";
            $browser_version="Other";

        else:
            $browser_type="Other";
            $browser_version="Other";

        endif;

        $browser_os=str_to_os($agent);

        return array($browser_type,$browser_version,$browser_os);

        }

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
http://dev.e-taller.net/brwsdtct/


PS
да, pear-вский класс слегка неудбный и похоже немного глючный :)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28