Detectar Mobile Browsers com PHP
Postado por: Pedro Rogério em
Com o constante crescimento da internet móvel, criar uma versão mobile do seu site não pode ficar para segundo plano. Devido hoje os browsers instalados nos aparelhos celulares serem cada vez mais semelhantes aos browsers desktop, utilizar do atributo media=”handheld” no CSS pode não ser a melhor solução.
Portanto, para você ter certeza de que sua aplicação será acessada corretamente pelos user-agents é aconselhável utilizar alguma linguagem de programação. Calma, você não precisa ficar desesperado por que não sabe programar, o site Detect Mobile Browsers disponibiliza um código para que você possa fazer isso facilmente. Você vai até o site, gera o código como desejar, depois basta fazer o download do mesmo e aplicá-lo ao seu site.
Exemplos
Detectar e redirecionar todas as requisições mobile para o site google.mobi:
< ?php
include('mobile_device_detect.php');
mobile_device_detect(true,true,true,true,true,true,'http://google.mobi/',false);
?>
Detectar e redirecionar todas as requisições não mobile para o site google.com:
< ?php
include('mobile_device_detect.php');
mobile_device_detect(true,true,true,true,true,true,false,'http://google.com/');
?>
Detectar e redirecionar: Mobiles para google.mobi e não mobiles para google.com:
< ?php
include('mobile_device_detect.php');
mobile_device_detect(true,true,true,true,true,true,'http://google.mobi/','http://google.com/');
?>
Incluir um arquivo para browsers mobile e outro para versões não mobile:
< ?php
include('mobile_device_detect.php');
if(mobile_device_detect(true,true,true,true,true,true,false,false)){
include('mobile.html');
} else {
include('nao-mobile.html');
}
?>
Para maiores informações e documentação, visite o site oficial.














Caiu como uma luva, estava usando JS para detecção de resolução e mobile, mas este parece ser melhor, vou estudar.
Social comments and analytics for this post…
This post was mentioned on Twitter by pinceladasdaweb: Detectar Mobile Browsers com PHP: http://migre.me/cmHj #php…
Fala Pedro blz, gostei muito de seu post hoje, esse lance de termos de desenvolver aplicações para celulares é um fato que está crescente hoje no mercado, só lamento que falte maiores informações ou detalhes do processo de implantação, eu sei que tem os links para os sites citados, mais esses sites são em inglês nem todos lêem o inglês tão bem e se usados tradutores online eles perdem um pouco o sentido, mais parabéns o post é ótimo.
Essa ‘classe’ é bastante antiga… mas sempre que usei notei que ela tem problema para reconhecer alguns celulares… A maioria dos Blackberrys sempre deu problema :/
Tem alguns plugins para wordpress que fazem isso também. Baseados nessa classe, em sua maioria. Ele simplesmente detecta o useragent do navegador.
Pode ser encontrado na página de plugins do wordpress:
http://wordpress.org/extend/plugins/search.php?q=mobile
Eu uso no meu site:
http://eduardo.pacheco.kanema.com.br/?mobile
Abraço!
@Rodrigo Barba o problema ta aí, não é uma ‘classe’ e sim apenas uma função.
Não é legal ter que passar 6 paramêtros até você chegar onde tem que dar os redirect ou não. Poderia vir para todos os mobile como true e você ter apenas que definir para false o que você não queira que funcione assim como as url de redirect.
Algo do tipo:
$redirect = new mobileDeviceDetect();
$redirect->setMobileRedirect = ‘mobile.html’;
$redirect->setDesktopRedirect = ‘nao-mobile.html’;
Poderia até tentar fazer algo assim, alguém tem como testar nos mobiles?
Tah e no caso de um usuario mobile quiser acessar a versão original do site como faz?
Ele sempre vai redirecionar para a versão especifica?
Eduardo,
Aí você deve criar uma opção para ele ter acesso ao site completo.
Sim, mas quando ele acessar o site completo, ele vai ser redirecionado novamente por causa do php!
Bem bacana a solução! E é importante sempre manter atualizada a lista dos devices com os possíveis user agents, para não ter problema de não ser reconhecido!
Abs!
Acabei de acessar com o opera 9.80 mobile … #fail.
Opera/9.80 (S60; Sym ….)
não reconheceu como mobile.
Salvou minha vida!