02 Апр

Как определить операционную систему посетителя?

Для сбора статистики, либо для предложения подходящей версии программного продукта, необходимо узнать его операционную систему. Эти данные, и также куча побочных содержаться в строке $_SERVER['HTTP_USER_AGENT'], которая и служит параметром для следующей функции

function check_os($useragent) {
//на случай использования посетителем какой-то экзотической операционной //системы, которая не опознается данной функцией
// ей присваивается неопределённое значение
$os = “Unknown”;
//Если операционная система от Microsoft есть возможность определения точной //версии
if(strpos($useragent, “Win”) !== false) {
if(strpos($useragent, “NT 4.0″) !== false) $os = ‘Windows NT’;
if(strpos($useragent, “NT 6.1″) !== false) $os = ‘Windows Seven’;
if(strpos($useragent, “NT 6.0″) !== false) $os = ‘Windows Vista’;
if(strpos($useragent, “NT 5.2″) !== false) $os = ‘Windows Server 2003; XPx64′;
if(strpos($useragent,”NT 5.1″) !== false || strpos($useragent, “Win32″) !== false
|| strpos($useragent, “XP”)) $os = ‘Windows XP’;
if(strpos($useragent, “NT 5.0″) !== false) $os = ‘Windows 2000′;
if(strpos($useragent, “Me”) !== false) $os = ‘Windows Me’;
if(strpos($useragent, “98″) !== false) $os = ‘Windows 98′;
if(strpos($useragent, “95″) !== false) $os = ‘Windows 95′;
}
//Все *nix совместимые системы определяются как Linux
if(strpos($useragent, “Linux”)!== false || strpos($useragent, “Lynx”)!== false
|| strpos($useragent, “Unix”) !== false) $os = ‘Linux’;
if(strpos($useragent, “Macintosh”)!== false
|| strpos($useragent, “PPC”)|| strpos($useragent, “Intel”)) $os = ‘Macintosh’;
if(strpos($useragent, “OS/2″)!== false) $os = ‘OS/2′;
if(strpos($useragent, “BeOS”)!== false) $os = ‘BeOS’;
if(strpos($useragent, ” SunOS “)!== false) $os = ‘SunOS’;
if(strpos($useragent, ” J2ME”)!== false) $os = ‘Mobile OS with J2ME’;
if(strpos($useragent, ” Symbian”)!== false) $os = ‘Symbian’;
return $os;
}
//———————————————————————————————————-

Основным элементом, который используется в вышеуказанном коде, является функция языка программирования PHP – strpos, которая обладает следующим синтаксисом:
strpos ( string haystack, string needle [, int offset] )
где,
String haystack – строка, в которой осуществляется поиск, в данном случае это строка user-agent.
String needle – подстрока, чьё вхождение в String haystack ищет функция
int offset – необязательный параметр, который позволяет указать, с какого по счету символа строки haystack начинать поиск.
Эта функция возвращает позицию первого вхождения подстроки. Возвращается всегда позиция относительно начала строки haystack. В случае, если подстрока needle не найдена, strpos() возвращает FALSE. Используя в качестве строки, в которой происходит поиск, значения user-agent, а в качестве подстроки – ключевые слова, характерные только определённой операционной системе, возможно определение её версию.

Спонсоры данного поста:

Блог http://dariuideji.blogspot.com/ , на страницах которого вы найдёте чрезвычайно оригинальные, занимательные и интересные идеи , касающийся практически всех сфер Вашей жизни.

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


Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Оставить комментарий

Вы должны Войти, чтобы оставить комментарий.

© 2010 PHP F.A.Q.