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 (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

2 Responses

  1. Mauro disse:

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

Deixe uma resposta

Terminal de Informação