как максимально точно определить, что софт пользователя - это компьютер?
у меня есть старенький код, но чёт уже сомневаюсь в нём
windows, opera, linux, macos - это всё используется на мобильных устройствах тоже.
05 Янв 2011, 16:53OZ_, вот и я про это думаю. но мне это итак было видно, я сюда за ответом пришел, а не за советами
05 Янв 2011, 16:55stallon, ты как-то нагловато спрашиваешь "ответы". выглядит как требование ккое-то. Попробуй у гугла потребуй, ему пофиг на воспитанность.
05 Янв 2011, 17:27Вот моя старенькая функция. Она не идеальна, и стремится доказать, что браузер мобилен. Если не получается - возвращает false.
function is_mobile_browser($user_agent = '')
{
if ($user_agent=='') $user_agent = $_SERVER['HTTP_USER_AGENT'];
if (empty($user_agent)) return false;
if (stripos($user_agent, 'Explorer')!==false ||
stripos($user_agent, 'Windows')!==false ||
stripos($user_agent, 'Win NT')!==false ||
stripos($user_agent, 'FireFox')!==false ||
stripos($user_agent, 'linux')!==false ||
stripos($user_agent, 'unix')!==false ||
stripos($user_agent, 'Macintosh')!==false)
{
if (!(stripos($user_agent, 'Opera Mini')!==false
|| stripos($user_agent, 'WAP')!==false
|| stripos($user_agent, 'Mobile')!==false
|| stripos($user_agent, 'Symbian')!==false
|| stripos($user_agent, 'NetFront')!==false
|| stripos($user_agent, ' PPC')!==false
|| stripos($user_agent, 'iPhone')!==false
|| stripos($user_agent, 'Android')!==false
|| stripos($user_agent, 'Nokia')!==false
|| stripos($user_agent, 'Samsung')!==false
|| stripos($user_agent, 'SonyEricsson')!==false
|| stripos($user_agent, 'LG')!==false
|| stripos($user_agent, 'Obigo')!==false
|| stripos($user_agent, 'SEC-SGHX')!==false
|| stripos($user_agent, 'Fly')!==false
|| stripos($user_agent, 'MOT-')!==false
|| stripos($user_agent, 'Motorola')!==false
)
) return false;
}
return true;
}
Кто что скажет про такую функцию:
<?php
function waporweb() {
if(isset($_SERVER["HTTP_X_OPERAMINI_FEATURES"]) || isset($_SERVER["HTTP_X_OPERAMINI_PHONE"]) || isset($_SERVER["HTTP_X_OPERAMINI_PHONE_UA"])) return 1;
$s = $_SERVER['HTTP_USER_AGENT'];
$_j2me = array(
0 => "MIDP",
1 => "CLDC"
);
$_os = array(
0 => "Linux",
1 => "Windows",
2 => "Macintosh",
3 => "Mac OS",
4 => "Solaris",
5 => "NT"
);
for($i = 0; $i < sizeof($_j2me); $i++) {
if(preg_match('/'.$_j2me[$i].'/i', $s)) return 1;
}
for($i = 0; $i < sizeof($_os); $i++) {
if(preg_match('/'.$_os[$i].'/i', $s)) return 0;
}
return 1;
}
?>