Xwab
Форумыnavigate_nextПрограммирование на PHP

Фильтр софта
Сообщения
stallon

как максимально точно определить, что софт пользователя - это компьютер?
у меня есть старенький код, но чёт уже сомневаюсь в нём

05 Янв 2011, 16:40
^li^

Нормальный код только оперу убрать от туда

05 Янв 2011, 16:46
OZ_

windows, opera, linux, macos - это всё используется на мобильных устройствах тоже.

05 Янв 2011, 16:53
stallon

OZ_, вот и я про это думаю. но мне это итак было видно, я сюда за ответом пришел, а не за советами

05 Янв 2011, 16:55
OZ_

stallon, ты как-то нагловато спрашиваешь "ответы". выглядит как требование ккое-то. Попробуй у гугла потребуй, ему пофиг на воспитанность.

05 Янв 2011, 17:27
stallon

OZ_, простите, великодушный))

05 Янв 2011, 17:29
OZ_

Вот моя старенькая функция. Она не идеальна, и стремится доказать, что браузер мобилен. Если не получается - возвращает 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;
}


__________
посл.ред. 06 Янв 2011, 3:00; всего 1 раз 06 Янв 2011, 0:31
JESOD

Кто что скажет про такую функцию:
<?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;
}
?>

06 Янв 2011, 0:38
stallon

Неуч, два цикла с preg_match(): по моему только тормозить будут скрипт.

06 Янв 2011, 6:49
stallon

OZ_, спасибо, мне подойдёт.

06 Янв 2011, 6:50
Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.