[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: регулярка
qaz333

<?
$r="Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.10";

preg_match_all("/(.*?)\/(.*?)/",$r,$q);

echo $q[0][0];

?>


мне нужно
из ето всего только браузер Opera/9.80
и система Windows NT

как правильно составитьрегулярку штоб выдирала ети данные?



Спустя 1 час, 29 минут, 14 секунд (17.06.2011 - 20:44) pak написал(а):

$s = 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.10';
$a = explode(' ',$s);
$v = $a[0].'-'.$a[1].' '.$a[2];
$v = str_replace('(','',$v);
$v = explode('-',$v);
print_r($v);

Спустя 1 минута, 51 секунда (17.06.2011 - 20:46) Guest написал(а):
pak
в разных браузерах могут быть в разных местах

Спустя 9 минут, 40 секунд (17.06.2011 - 20:56) tatti написал(а):
можно искать на соответствие с определёнными браузерами вместо использования регулярок.
if(strstr($s, 'Opera'))
{
// Opera
}
elseif(strstr($s, 'Firefox'))
{
// Firefox
}
elseif(strstr($s, 'IE'))
{
// IE
}
elseif(strstr($s, 'Safari'))
{
// Safari
}
else
{
exit('Your browser is unwanted in here. Cya!');
}

Спустя 21 минута, 49 секунд (17.06.2011 - 21:17) qaz333 написал(а):
ага, а вот толькошто возникла идея как состпвить регулярку штоб выдерала

1) всё што до знака (
2) всё што после знака ( и до ;

??

Спустя 24 минуты, 43 секунды (17.06.2011 - 21:42) tatti написал(а):
#^(\()(\()$# вроде так

Спустя 5 часов, 29 минут, 8 секунд (18.06.2011 - 03:11) walerus написал(а):
Цитата (tatti @ 17.06.2011 - 18:42)
#^(\()(\()$# вроде так

Малость не так.

$s = 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.10';

preg_match( '~^(.*)\((.*);~iUs', $s, $ff);
print_r($ff);

/*
Array
(
[0] => Opera/9.80 (Windows NT 5.1;
[1] => Opera/9.80
[2] => Windows NT 5.1
)
*/


вот так.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.