Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: при входе посетителя, определять тип его браузера для wap сайта
 
 автор: dirol   (05.02.2009 в 20:19)   письмо автору
 
 

Добрый день.

Возникла необходимость сделать

при входе посетителя, определять тип его браузера, и, если пользователь зашёл через wap-браузер мобильного телефона, автоматически редиректить его на wap-сайт.

Нашел класс но к нему было очень много комментариев что сделан он немного коряво вот сам код.

Eregi рекомендуют заменить на что ни будь другое. На что посоветуете и как?



<?php


function detect_mobile_device(){

  
// check if the user agent value claims to be windows but not windows mobile
  
if(stristr($_SERVER['HTTP_USER_AGENT'],'windows')&&!stristr($_SERVER['HTTP_USER_AGENT'],'windows ce')){
    return 
false;
  }
  
// check if the user agent gives away any tell tale signs it's a mobile browser
  
if(eregi('up.browser|up.link|windows ce|iemobile|mini|mmp|symbian|midp|wap|phone|pocket|mobile|pda|psp',$_SERVER['HTTP_USER_AGENT'])){
    return 
true;
  }
  
// check the http accept header to see if wap.wml or wap.xhtml support is claimed
  
if(stristr($_SERVER['HTTP_ACCEPT'],'text/vnd.wap.wml')||stristr($_SERVER['HTTP_ACCEPT'],'application/vnd.wap.xhtml+xml')){
    return 
true;
  }
  
// check if there are any tell tales signs it's a mobile device from the _server headers
  
if(isset($_SERVER['HTTP_X_WAP_PROFILE'])||isset($_SERVER['HTTP_PROFILE'])||isset($_SERVER['X-OperaMini-Features'])||isset($_SERVER['UA-pixels'])){
    return 
true;
  }
  
// build an array with the first four characters from the most common mobile user agents
  
$a = array(
                    
'acs-'=>'acs-',
                    
'alav'=>'alav',
                    
'alca'=>'alca',
                    
'amoi'=>'amoi',
                    
'audi'=>'audi',
                    
'aste'=>'aste',
                    
'avan'=>'avan',
                    
'benq'=>'benq',
                    
'bird'=>'bird',
                    
'blac'=>'blac',
                    
'blaz'=>'blaz',
                    
'brew'=>'brew',
                    
'cell'=>'cell',
                    
'cldc'=>'cldc',
                    
'cmd-'=>'cmd-',
                    
'dang'=>'dang',
                    
'doco'=>'doco',
                    
'eric'=>'eric',
                    
'hipt'=>'hipt',
                    
'inno'=>'inno',
                    
'ipaq'=>'ipaq',
                    
'java'=>'java',
                    
'jigs'=>'jigs',
                    
'kddi'=>'kddi',
                    
'keji'=>'keji',
                    
'leno'=>'leno',
                    
'lg-c'=>'lg-c',
                    
'lg-d'=>'lg-d',
                    
'lg-g'=>'lg-g',
                    
'lge-'=>'lge-',
                    
'maui'=>'maui',
                    
'maxo'=>'maxo',
                    
'midp'=>'midp',
                    
'mits'=>'mits',
                    
'mmef'=>'mmef',
                    
'mobi'=>'mobi',
                    
'mot-'=>'mot-',
                    
'moto'=>'moto',
                    
'mwbp'=>'mwbp',
                    
'nec-'=>'nec-',
                    
'newt'=>'newt',
                    
'noki'=>'noki',
                    
'opwv'=>'opwv',
                    
'palm'=>'palm',
                    
'pana'=>'pana',
                    
'pant'=>'pant',
                    
'pdxg'=>'pdxg',
                    
'phil'=>'phil',
                    
'play'=>'play',
                    
'pluc'=>'pluc',
                    
'port'=>'port',
                    
'prox'=>'prox',
                    
'qtek'=>'qtek',
                    
'qwap'=>'qwap',
                    
'sage'=>'sage',
                    
'sams'=>'sams',
                    
'sany'=>'sany',
                    
'sch-'=>'sch-',
                    
'sec-'=>'sec-',
                    
'send'=>'send',
                    
'seri'=>'seri',
                    
'sgh-'=>'sgh-',
                    
'shar'=>'shar',
                    
'sie-'=>'sie-',
                    
'siem'=>'siem',
                    
'smal'=>'smal',
                    
'smar'=>'smar',
                    
'sony'=>'sony',
                    
'sph-'=>'sph-',
                    
'symb'=>'symb',
                    
't-mo'=>'t-mo',
                    
'teli'=>'teli',
                    
'tim-'=>'tim-',
                    
'tosh'=>'tosh',
                    
'treo'=>'treo',
                    
'tsm-'=>'tsm-',
                    
'upg1'=>'upg1',
                    
'upsi'=>'upsi',
                    
'vk-v'=>'vk-v',
                    
'voda'=>'voda',
                    
'wap-'=>'wap-',
                    
'wapa'=>'wapa',
                    
'wapi'=>'wapi',
                    
'wapp'=>'wapp',
                    
'wapr'=>'wapr',
                    
'webc'=>'webc',
                    
'winw'=>'winw',
                    
'winw'=>'winw',
                    
'xda-'=>'xda-'
                  
);
  
// check if the first four characters of the current user agent are set as a key in the array
  
if (array_key_exists(substr($_SERVER['HTTP_USER_AGENT'],0,4), $a)){
    return 
true;
  }
}


function 
detect_iphone(){
  if(
eregi('iphone',$_SERVER['HTTP_USER_AGENT'])||eregi('ipod',$_SERVER['HTTP_USER_AGENT'])){
    return 
true;
  }
}

// example 1 - detect and redirect mobile browsers
if(detect_mobile_device()){
  
header('Location: http://andymoore.mobi/');
  exit;
}

// example 2 - detect and redirect desktop browsers
if(!detect_mobile_device()){
  
header('Location: http://andymoore.info/');
  exit;
}

function 
detect_iphone(){
  if(
eregi('iphone',$_SERVER['HTTP_USER_AGENT'])){
    return 
true;
  }
}

// example 3 - send iphone to specific site
if(detect_iphone()){
  
header('Location: http://iphonesite.mobi/');
  exit;
}

?>

  Ответить  
 
 автор: dirol   (06.02.2009 в 01:54)   письмо автору
 
   для: dirol   (05.02.2009 в 20:19)
 

мож кто знает как сделать этот скрипт получше?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования