Для чего это может быть использовано?
На мой взгляд это применимо для ведения статистики.
И так на ваш суд выносится такое решение. Логика проста, используя глобальный массив, который уже существует в 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]