Red de conocimiento informático - Aprendizaje de programación - Código PHP que determina si el usuario accede desde un teléfono móvil o un ordenador de sobremesa

Código PHP que determina si el usuario accede desde un teléfono móvil o un ordenador de sobremesa

function?isMobile()

{?

//?Si HTTP_X_WAP_PROFILE existe, debe ser un dispositivo móvil

if(isset?($_SERVER['HTTP_X_WAP_PROFILE']))

{

return?true;

}?

/ /?Si la información de vía contiene wap, entonces debe ser un dispositivo móvil, algunos proveedores de servicios bloquearán esta información

if(isset?($_SERVER['HTTP_VIA']))

{?

/?falso si no se encuentra, verdadero en caso contrario

return?stristr($_SERVER['HTTP_VIA'],?" wap")verdadero?:? ;

}?

//? Una forma estúpida de juzgar el indicador del cliente enviado por el teléfono móvil. Es necesario mejorar la compatibilidad

if(isset. ?($_SERVER ['HTTP_USER_AGENT']))

{

$clientkeywords?=?array?('nokia',

' sony',

'ericsson',

'mot',

'samsung',

'htc',

'sgh',

'lg',

'sharp',

'sie-',

'philips',

'panasonic',

'alcatel',

'lenovo',

'iphone',

'ipod',

'blackberry',

'meizu',

'android',

'netfront',

p>

'symbian',

'ucweb',

'windowsce',

'palma',

' operamini',

'operamobi',

'openwave',

'nexusone',

'cldc',

'midp',

'wap',

'móvil'

);?

//?Buscar móvil desde HTTP_USER_AGENT Palabras clave del navegador

if(preg_match("/("??.?implode('|',?$clientkeywords)?.?")/i",?strtolower($_SERVER[' HTTP_USER_AGENT '])))

{

return?true;

}?

}?

/ /?El método del protocolo, debido a que puede ser inexacto, se deja al juicio final

if(isset?($_SERVER['HTTP_ACCEPT']))

{? /p>

//?Si solo admite wml pero no html, entonces debe ser un dispositivo móvil

//?Si admite wml y html, pero wml viene antes que html, entonces es un dispositivo móvil

//?Si admite wml y html, pero wml viene antes que html, entonces debe ser un dispositivo móvil

p>

if((strpos($_SERVER ['HTTP_ACCEPT'], ?' vnd.wap.wml'?! ==?falso)?

TP_ACCEPT'],?' texto/html')? ===?false?||?(strpos($_SERVER['HTTP_ACCEPT'],?') ===?false?||? vnd.wap.wml' )? }?

}?

retorno?falso;

}? >

}?