|
|
|
|
|
для: cheops
(27.02.2011 в 20:21)
| | Спасибо, все на "УРА!" | |
|
|
|
|
|
|
|
для: TrEK
(27.02.2011 в 19:57)
| | Можно поступить следующим образом
if(preg_match('|Ubuntu/([0-9]{1,2}\.[0-9]{1,2}[\s]+[^\s]+[\s]+)|', $useragent , $out)) $os =$out[0]; | |
|
|
|
|
|
|
|
для: TrEK
(25.02.2011 в 20:04)
| | Значит никак не получится? | |
|
|
|
|
|
|
|
для: cheops
(25.02.2011 в 19:14)
| | Конечно может быть другой | |
|
|
|
|
|
|
|
для: cheops
(25.02.2011 в 19:14)
| | А если побить $useragent эксплодом по пробелам, а потом вытащить браузер array_pop'ом? | |
|
|
|
|
|
|
|
для: TrEK
(25.02.2011 в 15:33)
| | Нет, \. - это символ точки, а у вас пробел, кроме того lucid заключено в круглые скобки. Напишите прямо так
if(preg_match('|Ubuntu/([0-9]{1,2}\.[0-9]{1,2} \(lucid\))|', $useragent , $out)) $os =$out[0];
Или последовательность (lucid) может быть другой? | |
|
|
|
|
|
|
|
для: cheops
(25.02.2011 в 14:20)
| | Ясно.
Тогда для строки:
Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.04 (lucid) Firefox/3.6.12
должно быть так?:
if(preg_match('|Ubuntu/([0-9]{1,2}\.[0-9]{1,2}\.[a-z]{1,5})|', $useragent , $out)) $os =$out[0];
echo $os; | |
|
|
|
|
|
|
|
для: TrEK
(25.02.2011 в 12:02)
| | >Где можно узнать как правильно орудовать этими ([0-9]{1.2}\.[0-9]{1,2}) ?
>Могли бы сделать маленький экскурс?
Все что заключено в квадратные скобки - это один символ, в данном случае от 0 до 9. В фигурных скобках указывается сколько раз этот символ может повторяться в данном случае от 1 до 2 раз. | |
|
|
|
|
|
|
|
для: TrEK
(25.02.2011 в 12:02)
| | >if(preg_match('|Safari/([0-9]{1,2,3}\.[0-9]{1,2})|', $useragent , $out)) $browser = $out[0];
if(preg_match('|Safari/([0-9]{1,3}\.[0-9]{1,2}\.[0-9]{1,2})|', $useragent , $out)) $browser = $out[0];
>Что надо заменить в строке обработки, чтоб выводило не Firefox/3.6, а Firefox/3.6.13:
То же самое, что в предыдущей строке - нужно добавить третью цифру в регулярном выражении
>И почему-то не выводит версию этой ОС:
>if(preg_match('|Ubuntu/([0-9]{1.2}\.[0-9]{1,2})|', $useragent , $out)) $os =$out[0];
В конструкции {1.2} используется точка вместо запятой - это ошибка. | |
|
|
|
|
|
|
|
для: cheops
(25.02.2011 в 11:05)
| | Ясно., значит просто
<?php
if(preg_match('|Firefox/([0-9]\.[0-9]{1,2})|', $useragent , $out)) $browser = $out[0];
if(preg_match('|Opera/([0-9]{1,2}\.[0-9]{1,2})|', $useragent , $out)) $browser = $out[0];
if(preg_match('|Navigator/([0-9]\.[0-9]{1,2})|', $useragent , $out)) $browser ="Netscape $out[0]";
if(preg_match('|Chrome/([0-9]\.[0-9]{1,2})|', $useragent , $out)) $browser =$out[0];
?>
|
Не выводит почему-то Safari:
Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4
if(preg_match('|Safari/([0-9]{1,2,3}\.[0-9]{1,2})|', $useragent , $out)) $browser = $out[0];
Что надо заменить в строке обработки, чтоб выводило не Firefox/3.6, а Firefox/3.6.13:
Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
И почему-то не выводит версию этой ОС:
Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.04 (lucid) Firefox/3.6.12
if(preg_match('|Ubuntu/([0-9]{1.2}\.[0-9]{1,2})|', $useragent , $out)) $os =$out[0];
================================================================
Где можно узнать как правильно орудовать этими ([0-9]{1.2}\.[0-9]{1,2}) ?
Могли бы сделать маленький экскурс? | |
|
|
|
|