Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Список HTTP_USER_AGENT (Важно!)
 
 автор: Петр   (12.08.2008 в 17:27)   письмо автору
 
 

Всем добрый день.
Часто возникает проблема с корректностью при определении типов и версий браузера и операционной системы. Написать универсальную функцию не позволяет отсутствие данных для тестирования.

Давайте создадим общую базу значений HTTP_USER_AGENT и будем вместе ею пользоваться!
У кого есть редкие браузеры или операционки, не поленитесь, пополните нашу базу своими значениями...

Opera/9.01 (Windows NT 5.1; U; ru)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; MRA 4.10 (build 01952); .NET CLR 2.0.50727)
Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9) Gecko/2008052906 Firefox/3.0

  Ответить  
 
 автор: sim5   (12.08.2008 в 17:36)   письмо автору
 
   для: Петр   (12.08.2008 в 17:27)
 

Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.1 Safari/525.17

  Ответить  
 
 автор: mihdan   (12.08.2008 в 17:44)   письмо автору
 
   для: Петр   (12.08.2008 в 17:27)
 

User-Agent браузеров (в том числе и редких моделей)
User-Agent Мобильных телефонов
Список браузеров

  Ответить  
 
 автор: Петр   (12.08.2008 в 17:51)   письмо автору
 
   для: Петр   (12.08.2008 в 17:27)
 

Спасибо за ссылку, очень полезная.
Нашел файл в который складывал HTTP_USER_AGENT посетителей:

Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7)

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.8 (build 01709); .NET CLR 1.1.4322)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.9 (build 01863); .NET CLR 1.1.4322)
Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0 ; .NET CLR 2.0.50215; SL Commerce Client v1.0; Tablet PC 2.0)
Mozilla/5.0 (Windows NT 5.1; U; ru) Opera 9.00
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.11) Firefox/2.0.0.11
Mozilla/4.0 (compatible; Powermarks/3.5; Windows 95/98/2000/NT)
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20060206 Songbird/0.1)
Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; WebMoney Advisor; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)
Opera/9.25 (Windows NT 5.2; U; ru)
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20060206 Songbird/0.1
Mozilla/5.0 (Windows; U; Windows NT 5.2 x64; en-US; rv:1.9a1) Gecko/20060214 Firefox/1.6a1
Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)
Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.1.13) Gecko/20080407 FreeBSD/7.0-PRERELEASE
Opera/9.27 (Windows NT 5.1; U; ru)
Windows; U; Windows NT 5.1; en-US; rv:1.4b) Gecko/20030504 Mozilla Firebird/0.5+
Mozilla/5.0 (Windows; U; WinNT4.0; en-CA; rv:0.9.4) Gecko/20011128 Netscape6/6.2.1
Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.2) Gecko/20021126
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.54 [en]
Windows; U; Windows NT 5.0; en-US; rv:1.8a) Gecko/20040416 Firefox/0.8.0+
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.00
Mozilla/4.0 (compatible; MSIE 7.0; Linux i686)
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 Sylera/1.2.7

  Ответить  
 
 автор: GeorgeIV   (12.08.2008 в 18:06)   письмо автору
 
   для: Петр   (12.08.2008 в 17:51)
 

а еще туева куча микроброузеров сотовых телефонов и КПК

  Ответить  
 
 автор: Петр   (13.08.2008 в 09:44)   письмо автору
 
   для: GeorgeIV   (12.08.2008 в 18:06)
 

КПК я пока в расчет не беру
нужно придумать регулярное выражение универсальное для всех браузеров

функция выдергивает название браузера и его версию:

<?php
function GetBrowser($agent) {
    
// Список известных браузеров;
    
$browsers = array(
        
'msie' => 'Internet Explorer',
        
'opera' =>'Opera',
        
'myie' =>'MyIE',
        
'firefox' =>'Firefox',
        
'safari' =>'Safari',
        
'netscape' =>'Netscape',
        
'mozilla' =>'Mozilla'
    
);
    
// Обход массива браузеров;
    
foreach ($browsers as $item=>$value) {
        
// ;
        
if (eregi("(".$item."|".$item." |".$item."/)([0-9]{1,4}.[0-9]{1,4}){0,1}"$agent$match)) {
            return 
$value.' '.$match[2];
        }
    }
}
?>

  Ответить  
 
 автор: mechanic   (13.08.2008 в 10:46)   письмо автору
 
   для: Петр   (13.08.2008 в 09:44)
 

буду краток, все уже создано до нас http://ru.wikipedia.org/wiki/User_Agent
=)

  Ответить  
 
 автор: mihdan   (13.08.2008 в 12:13)   письмо автору
 
   для: mechanic   (13.08.2008 в 10:46)
 

По ссылке - только примеры значений User Agent, но не вся база, хотя тож неплохо спасибо

  Ответить  
 
 автор: Петр   (13.08.2008 в 12:14)   письмо автору
 
   для: mechanic   (13.08.2008 в 10:46)
 

Спасибо за ссылку. Основные браузеры (более 30 штук) я взял именно с Википедии и протестировал на тех же примерах, все работает отлично, все браузеры определяются отлично, за исключением Links. Он определяется, но версию вытащить никак не получается, т.к. она находится за скобкой.

Не получилось вставить еще условие со скобкой, может кто-нибудь подскажет?

Еще осталось взять мобильные браузеры, штук 20 самых основных (Java-браузеров, типа Opera Mini и встроенных в мобильники)
http://www.zytrax.com/tech/web/mobile_ids.html

Дополненная функция:
<?php
function GetBrowser($agent) {
    
// Список известных браузеров; 
    
$browsers = array(
        
'amaya' => 'Amaya',
        
'america online' => 'America Online',
        
'avant browser' => 'Avant Browser',
        
'camino' => 'Camino',
        
'epiphany' => 'Epiphany',
        
'flock ' => 'Flock ',
        
'iceweasel' => 'Iceweasel',
        
'icecat' => 'IceCat',
        
'k-meleon' => 'K-Meleon',
        
'konqueror' => 'Konqueror',
        
'minimo' => 'Minimo',
        
'links' => 'Links',
        
'netpositive' => 'NetPositive',
        
'playstation' => 'PlayStation',
        
'seamonkey' => 'SeaMonkey',
        
'Lynx ' => 'Lynx',
        
'freebsd' =>'FreeBSD',
        
'powermarks' => 'Powermarks',
        
'safari' =>'Safari',
        
'phoenix' => 'Phoenix',
        
'paradiso' => 'GranParadiso',
        
'firebird' =>'Firebird',
        
'songbird' =>'Songbird',
        
'firefox' =>'Firefox',
        
'sylera' =>'Sylera',
        
'netscape' =>'Netscape',
        
'opera mini' => 'Opera Mini',
        
'opera' =>'Opera',
        
'myie' =>'MyIE',
        
'msie' => 'Internet Explorer',
        
'mozilla' =>'Mozilla'
    
);
    
// Обход массива браузеров;
    
foreach ($browsers as $item=>$value) {
        
// ;
        
if (eregi("(".$item.".|".$item.". |".$item."./)([0-9a-z._+-:]{0,15})"$agent$match)) {
            return 
$value.' '.$match[2];
        }
    }
}
?>

  Ответить  
 
 автор: ~AquaZ~   (28.08.2010 в 19:33)   письмо автору
 
   для: Петр   (13.08.2008 в 12:14)
 

Ну что, кто-нибудь разобрался с Links? Его вроде уже нет вообще... Может стоит заменить eregi() на что-то вроде preg_match?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования