Как определить операционную систему посетителя?
Для сбора статистики, либо для предложения подходящей версии программного продукта, необходимо узнать его операционную систему. Эти данные, и также куча побочных содержаться в строке $_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/ , на страницах которого вы найдёте чрезвычайно оригинальные, занимательные и интересные идеи , касающийся практически всех сфер Вашей жизни.
Кстати, стоит задуматься о том, что аэробика для похудения очень важна для красивой фигуры