- Разпознаване на операционна система
WT форуми -> PHP MySQL ASP.NET -> Разпознаване на операционна система
Създайте нова тема Напишете отговор 
Автор Съобщение
systems
Турист
Турист

Регистриран на: 28/09/2012 9:04 pm

Support: 3
Bonus: 6
Мнения: 265
Мнение 15/05/2019 6:05 pm     Разпознаване на операционна система Отговорете с цитат


Добър ден използвам следния код за разпознаване на операционна система всичко работи нормално но немога да го накарам да разпознае windows 10 иначе разпонава
windows 7, windows 8, 8.1 windows xp, android, ios, linux
докато при 10 казва просто windows въпреки че е добавен 10 въпроса ми е къде греша
при 10 за да не го разпознава:

PHP code:
function getBrowserOS() { 

$user_agent = $_SERVER['HTTP_USER_AGENT'];
$browser = "Unknown Browser";
$os_platform = "Unknown OS Platform";

// Get the Operating System Platform

if (preg_match('/windows|win32/i', $user_agent)) {

$os_platform = 'Windows';


if (preg_match('/windows nt 6.2/i', $user_agent)) {

$os_platform .= " 8";


} else if (preg_match('/windows nt 6.4/i', $user_agent)) {

$os_platform .= " 10";

} else if (preg_match('/windows nt 6.3/i', $user_agent)) {

$os_platform .= " 8.1";


} else if (preg_match('/windows nt 6.1/i', $user_agent)) {

$os_platform .= " 7";

} else if (preg_match('/windows nt 6.0/i', $user_agent)) {

$os_platform .= " Vista";

} else if (preg_match('/windows nt 5.2/i', $user_agent)) {

$os_platform .= " Server 2003/XP x64";

} else if (preg_match('/windows nt 5.1/i', $user_agent) || preg_match('/windows xp/i', $user_agent)) {

$os_platform .= " XP";

} else if (preg_match('/windows nt 5.0/i', $user_agent)) {

$os_platform .= " 2000";

} else if (preg_match('/windows me/i', $user_agent)) {

$os_platform .= " ME";

} else if (preg_match('/win98/i', $user_agent)) {

$os_platform .= " 98";

} else if (preg_match('/win95/i', $user_agent)) {

$os_platform .= " 95";

} else if (preg_match('/win16/i', $user_agent)) {

$os_platform .= " 3.11";

}

} else if (preg_match('/macintosh|mac os x/i', $user_agent)) {

$os_platform = 'Mac';

if (preg_match('/macintosh/i', $user_agent)) {

$os_platform .= " OS X";

} else if (preg_match('/mac_powerpc/i', $user_agent)) {

$os_platform .= " OS 9";

}

} else if (preg_match('/linux/i', $user_agent)) {

$os_platform = "Linux";

}

// Override if matched

if (preg_match('/iphone/i', $user_agent)) {

$os_platform = "iPhone";

} else if (preg_match('/android/i', $user_agent)) {

$os_platform = "Android";

} else if (preg_match('/blackberry/i', $user_agent)) {

$os_platform = "BlackBerry";

} else if (preg_match('/webos/i', $user_agent)) {

$os_platform = "Mobile";

} else if (preg_match('/ipod/i', $user_agent)) {

$os_platform = "iPod";

} else if (preg_match('/ipad/i', $user_agent)) {

$os_platform = "iPad";

}

// Get the Browser

if (preg_match('/msie/i', $user_agent) && !preg_match('/opera/i', $user_agent)) {

$browser = "Internet Explorer";

} else if (preg_match('/firefox/i', $user_agent)) {

$browser = "Firefox";

} else if (preg_match('/chrome/i', $user_agent)) {

$browser = "Chrome";

} else if (preg_match('/safari/i', $user_agent)) {

$browser = "Safari";

} else if (preg_match('/opera/i', $user_agent)) {

$browser = "Opera";

} else if (preg_match('/netscape/i', $user_agent)) {

$browser = "Netscape";

}

// Override if matched

if ($os_platform == "iPhone" || $os_platform == "Android" || $os_platform == "BlackBerry" || $os_platform == "Mobile" || $os_platform == "iPod" || $os_platform == "iPad") {

if (preg_match('/mobile/i', $user_agent)) {



}

}

// Create a Data Array

return array(
'browser' => $browser,
'os_platform' => $os_platform
);

}


$user_agent = getBrowserOS();

$device_details = "<strong>Браузър: </strong>".$user_agent['browser']."<br /><strong>Операционна система: </strong>".$user_agent['os_platform']."";
$oz=$user_agent['browser'];
$brz=$user_agent['os_platform'];
print_r($device_details);
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
raiden
Активен
Активен

Регистриран на: 08/12/2006 10:13 am

Support: 190
Bonus: 466
Мнения: 2182
Мнение 15/05/2019 7:13 pm      Отговорете с цитат


Windows NT 10.0 се води версията.
И между другото . в регекс мачва всеки символ
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 160
Bonus: 319
Мнения: 1496
Мнение 15/05/2019 8:36 pm      Отговорете с цитат


Нямаш нужда от регулярни изрази тук. Можеш да директно да търсиш подниз: https://www.php.net/manual/en/function.stripos.php
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> PHP MySQL ASP.NET Часовете са според зоната GMT + 2 Часа
Страница 1 от 1


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети