Como verificar em PHP, se é navegação mobile ou desktop

Olá pessoal…

Hoje vou mostrar um exemplo simples de função em PHP, que verifica se está sendo executado em um Desktop ou em um Dispositivo Móvel (Mobile).

Essa função foi baseada na wp_is_mobile() dentro dos fontes do WordPress, onde é verificado o HTTP_USER_AGENT, e se ele tiver algumas palavras que indicam navegação mobile, ele irá alterar uma variável flag para true ou false.

No caso, se ele retornar false, quer dizer, que a navegação está ocorrendo em um desktop.

Verificando Navegação em Desktop

Do contrário, se ele encontrar um dispositivo móvel, ele irá retornar true.

Verificando Navegação em dispositivo Mobile

Abaixo o código fonte completo de exemplo.

<?php
	/*
	Trecho de exemplo extraído do WordPress - wp_is_mobile()
	*/

	function isMobile() {
		$is_mobile = false;

		//Se tiver em branco, não é mobile
		if ( empty($_SERVER['HTTP_USER_AGENT']) ) {
			$is_mobile = false;

		//Senão, se encontrar alguma das expressões abaixo, será mobile
		} elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false
			|| strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false
			|| strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false
			|| strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false
			|| strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false
			|| strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false
			|| strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mobi') !== false ) {
				$is_mobile = true;

		//Senão encontrar nada, não será mobile
		} else {
			$is_mobile = false;
		}

		return $is_mobile;
	}
?>

<head>
	<title>Exemplo isMobile</title>
</head>

<body>

	<center>

	<?php
		if (isMobile())
			echo 'Navegação em Dispositivo Móvel';
		else
			echo 'Navegação em Desktop';

		echo '<br><br>';

		echo '<b>HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT'].'</b>';
	?>
	</center>
</body>

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan Atilio (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

2 Responses

  1. Mauro disse:

    Obrigado pela sua contribuição em compartilhar seu conhecimento, me ajudou muito.

Deixe uma resposta