Neste tutorial, vamos mostrar como identificar se o seu website está sendo acessado em um computador normal ou em um dispositivo móvel (tipo smartphone ou tablet).

Este método é perfeito para você diferenciar ações que devem ser feitas especificamente para o PC ou para dispositivos móveis. Também serve para diferenciar ações para cada tipo sistema operacional móvel, como: iPhone, iPad, Adroid, webOS, Blackbarry, iPod, Symbiam ou Windows Phone, através do navegador de internet (browser) que o leitor está utilizando. Muito útil para quem está desenvolvendo sites responsivos.

É claro que existem outros métodos bem mais avançados para detectar que tipo de dispositivo o leitor está utilizando para acessar o seu site em PHP, mas acreditem, este é o mais simples que existe. Veja como utilizá-lo a seguir:

Código PHP no topo da página

1. Primeiro coloque o código a seguir no início da página. Este código serve para identificar qual o sistema o leitor esta utilizando quando acessa o seu site, definindo uma variável que utilizaremos como um tipo de seletor. No exemplo abaixo criamos a variável $dispositivo que irá definir se o usuário esta acessando o site de um dispositivo móvel ("mobile") ou de um computador ("computador).

Determinando a condicional para identificar se é um computador ou dispositivo móvel

$iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$ipad = strpos($_SERVER['HTTP_USER_AGENT'],"iPad");
$android = strpos($_SERVER['HTTP_USER_AGENT'],"Android");
$palmpre = strpos($_SERVER['HTTP_USER_AGENT'],"webOS");
$berry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry");
$ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod");
$symbian = strpos($_SERVER['HTTP_USER_AGENT'],"Symbian");
$windowsphone = strpos($_SERVER['HTTP_USER_AGENT'],"Windows Phone");

if ($iphone || $ipad || $android || $palmpre || $ipod || $berry || $symbian || $windowsphone == true) {
   $dispositivo = "mobile";
 }

else { $dispositivo = "computador";} 

Observe que no código acima nós utilizamos a função string strpos() para identificar se o valor da variável $_SERVER['HTTP_USER_AGENT'] contém os textos que definimos previamente, como: iPhone, iPad, Adroid, webOS, Blackbarry, iPod, Windows Phone ou Symbiam.

Determinando a condicional para identificar um sistema operacional específico

Se você precisa identificar um ou mais dispositivos móveis específicos, utilize o código abaixo. Neste exemplo o seletor $dispositivo irá definir qual o tipo de sistema móvel o leitor está acessando. Veja no exemplo abaixo que identificaremos um dispositivo móvel específico, iPhone ou Android.

$iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$android = strpos($_SERVER['HTTP_USER_AGENT'],"Android");

if ($iphone == true) {$dispositivo = "iPhone"; }
if ($android == true) {$dispositivo = "android";}

Código PHP em qualquer parte da página

2. Depois de definido o seletor ($dispositivo), utilize-o através de expressões condicionais para definir as ações específicas para cada tipo de dispositivo. Você pode colocar estas expressões em qualquer parte da página.

Logicamente, quando não se utiliza o seletor acima, todas as ações serão executadas em qualquer aparelho, computadores ou dispositivos móveis.

//Se for um dispositivo móvel
if ($dispositivo == "mobile") {

// AÇÕES EXCLUSIVAS PARA DISPOSITIVOS MÓVEIS

}

//Se for um computador
if ($dispositivo == "computador") {

// AÇÕES EXCLUSIVAS PARA COMPUTADORES

}

//Para rodar em qualquer aparelho, não utilize o seletor $dispositivo

// AÇÕES PARA QUALQUER DISPOSITIVO

Veja o exemplo abaixo:

//Se for um dispositivo móvel
if ($dispositivo == "mobile") {
	echo "<h1> Eu sou um Dispositivo Móvel </h1>";
	echo "Lore Ipsum lorem psumloren lore ipsulorem";
}

//Se for um computador
if ($dispositivo == "computador") {
	echo "<h1> Eu sou um COMPUTADOR </h1>";
	echo '<img src="http://visualdicas.com.br/images/banners/visualdicas_logo2.png">';
}

laughing Teste o código no link: http://phpfiddle.org/lite/code/ttkm-zhxv. Clique no botão [Run] para ver o resultado.

Dica: Redirecionando o site para uma página versão mobile

Você poderá utilizar a identificação do dispositivo como um método de redirecionamento para uma página específica para aparelhos móveis (smartphones ou tablets). Veja o exemplo a seguir.

//Se for um dispositivo móvel
if ($dispositivo == "mobile") {
	header("Location: http://www.blogolista.com/mobile");
}

//Se for um computador
if ($dispositivo == "computador") {
	echo "<h1> Eu sou um COMPUTADOR </h1>";
	echo '<img src="http://visualdicas.com.br/images/banners/visualdicas_logo2.png">';
}

Observe que a ação utilizada redireciona o site para uma página específica para aparelhos móveis quando a variável $dispositivo for igual a "mobile". No nosso exemplo utilizamos o redirecionamento para a página http://www.blogolista.com/mobile.

laughing Teste o nosso código no link: http://phpfiddle.org/main/code/76ai-ny6m. Clique no botão [Run - F9] para ver o resultado.

Explicando o código

3. A variável $_SERVER['HTTP_USER_AGENT'] é uma string que denota o agente de usuário pelo qual a página é acessada.

echo $_SERVER['HTTP_USER_AGENT'];

Para maior entendimento do código, acesse o site: phpfiddle.org. Digite o código acima e clique no botão [Run - F9]. Veja o resultado abaixo, onde utilizamos um desktop com Windows 10 e navegador Mozzila Firefox:

4. Verificando se a variável $windows é verdadeira. No exemplo a seguir vamos entender o uso da função strpos() e a condicional if ($windows==true) no código:

<?php

echo $_SERVER['HTTP_USER_AGENT'];
echo '<br/><br/>';

$windows = strpos($_SERVER['HTTP_USER_AGENT'],"Windows");
echo $windows;
echo '<br/><br/>';

if ($windows==true) {echo 'Meu sistema operacional é Windows';}

?> 

5. Para maior entendimento do código, acesse o site: phpfiddle.org. Digite o código do exemplo acima e clique no botão [Run - F9].

Inicialmente, a função stropos() verifica se existe a palavra ""windows" na variável $_SERVER['HTTP_USER_AGENT'] e indica qual é a posição inicial desta palavra. Observe no exemplo, conforme figura acima, que a palavra Windows aparece imediatamente após o 13º caractere. Portanto, a variável $windows = 13.

Como a palavra "windows" aparece na string $_SERVER[, é retornado o valor lógico "true" validando a condicional if ($windows==true).

Este mesmo processo, por analogia, será utilizado em nosso código para identificar os dispositivos móveis que os usuários estiverem acessando.

Código completo do exemplo (sem redirecionamento)

6. Para usar nos seu projetos.

<?php
 
// verificar se o dispositivo é móvel ou desktop
$iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$ipad = strpos($_SERVER['HTTP_USER_AGENT'],"iPad");
$android = strpos($_SERVER['HTTP_USER_AGENT'],"Android");
$palmpre = strpos($_SERVER['HTTP_USER_AGENT'],"webOS");
$berry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry");
$ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod");
$symbian = strpos($_SERVER['HTTP_USER_AGENT'],"Symbian");
$windowsphone = strpos($_SERVER['HTTP_USER_AGENT'],"Windows Phone");
 
if ($iphone || $ipad || $android || $palmpre || $ipod || $berry || $symbian || $windowsphone == true) {
   $dispositivo = "mobile";
 }
 
else { $dispositivo = "computador";}
 
// Definindo as ações para dispositivos móveis, desktop e para todos dispositivos
 
//Se for um dispositivo móvel
if ($dispositivo == "mobile") {
	
	echo "<h1> Eu sou um Dispositivo Móvel </h1>";
	echo "Lore Ipsum lorem psumloren lore ipsulorem";
}

//Se for um computador
if ($dispositivo == "computador") {
	
	echo "<h1> Eu sou um COMPUTADOR <h1>";
	echo '<img src="http://visualdicas.com.br/images/banners/visualdicas_logo2.png">';
}

//Em todos aparelhos
echo "<h1> Sem o seletor, apareço em qualquer aparelho </h1>";
echo "bla bla bla bla bla ...";

?>  

laughing Acesse o nosso o código no link: http://phpfiddle.org/lite/code/ttkm-zhxv. Clique no botão [Run] para ver o resultado.

Resultado do exemplo

7. Se o leitor está utilizando um computador.

8. Se o leitor está utilizando um dispositivo móvel.

O anúncio abaixo ajuda manter o Portal Visual Dicas

Comentários

JSN Epic template designed by JoomlaShine.com