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
Analista e desenvolvedor de sistemas. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas.

Deixe uma resposta