Vamos fazer alguma coisa um pouco mais útil agora. Nós iremos checar qual é o tipo de navegador que o visitante está utilizando para ver a nossa página. De fato, para fazer isto nós teremos que checar qual é o valor da string agente que o navegador envia como parte de sua requisição HTTP. Esta informação é armazenada em uma variável. Variáveis sempre começam com um símbolo de cifrão no PHP. A variável que nos interessa no momento é a $_SERVER["HTTP_USER_AGENT"].
Nota: Nota sobre as Auto-Globais do PHP
$_SERVER é uma variável especial reservada do PHP que contém todas as informações sobre o servidor web. Ela é conhecida como uma Auto-Global (ou Superglobal). Veja a página do manual relacionada as Auto-globais para mais informações. Estas variáveis especiais foram introduzidas no PHP » 4.1.0. Antes desta versão, nós usávamos os velhos arrays $HTTP_*_VARS, como o $HTTP_SERVER_VARS. Entretanto, este estilo antigo foi removido, porém ainda existem. (Veja a nota sobre códigos antigos.)
Para chamar esta variável, nós podemos fazer isto:
Exemplo #1 Imprimindo a variável (Elemento Array)
<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>
Um exemplo de saída deste script poderia ser:
Há muitos tipos de variáveis disponíveis no PHP. No exemplo acima nós escrevemos um elemento Array. Arrays podem ser muito úteis.
$_SERVER é somente uma variável que é automaticamente disponibilizada para você pelo PHP. Uma lista de Variáveis Reservadas pode ser vista na seção Variáveis Reservadas do manual ou você pode pegar uma lista completa delas criando um arquivo como este:
Exemplo #2 Exibindo todas as variáveis pré-definidas usando a função phpinfo()
<?php phpinfo(); ?>
Se você carregar este arquivo no seu navegador você irá ver uma página com todas as informações sobre o PHP junto com uma lista de todos os tipos de variáveis disponíveis para você.
Você pode colocar múltiplas declarações PHP dentro da tag PHP e criar pequenos blocos de códigos que fazem muito mais do que um simples echo. Por exemplo, se você quer checar se o navegador é o Internet Explorer faça algo como isso:
Exemplo #3 Exemplo usando controles de declarações e funções
<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
echo "Você está usando o Internet Explorer<br />";
}
?>
Um exemplo de Saída seria:
Você está usando o Internet Explorer<br />
Aqui nós mostraremos alguns novos conceitos. Nós temos a declaração if. Se você é familiar com a sintaxe básica usada pela linguagem C isto parecerá ser lógico para você. Se você não conhece a linguagem C ou alguma outra linguagem onde a sintaxe usada acima é usada, você provavelmente precisará de um livro introdutório sobre o PHP, dê uma lida nos primeiros capítulos do livro, ou leia a parte sobre a Referência da Linguagem no manual. Você pode encontrar uma lista de livros sobre PHP em at » http://www.php.net/books.php.
O segundo conceito que iremos abordar é a chamada à função strstr().
A função strstr() é trazida junto com o PHP, ela faz uma busca
em uma palavra por uma outra palavra. Neste caso nós procuramos pela palavra
"MSIE" dentro de $_SERVER["HTTP_USER_AGENT"].
Se a palavra for encontrada, a função retorna TRUE
e se ela não for encontrada
a função retorna FALSE
. Se o retorno for TRUE
, a declaração
if ocorre e o código dentro dela
é executado. Caso contrário, o código não é executado. Sinta-se à vontade para
criar exemplos similares com o if,
else, e outras funções como a
strtoupper() e
strlen(). Cada uma delas está no manual com seus respectivos
exemplos.
Nós podemos avançar agora e mostrar a você como alternar entre os modos PHP mesmo que você esteja executando blocos de códigos:
Exemplo #4 Mesclando entre os modos PHP e HTML
<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
?>
<h3>strstr retorna verdadeiro</h3>
<center><b>Você está usando o Internet Explorer</b></center>
<?php
} else {
?>
<h3>strstr retorna falso</h3>
<center><b>Você não está usando o Internet Explorer</b></center>
<?php
}
?>
Um exemplo de saída deste script poderia ser:
<h3>strstr retorna verdadeiro</h3> <center><b>Você está usando o Internet Explorer</b></center>
Ao invés de usar a declaração echo do PHP para imprimir a saída dos dados, nós saímos do
modo do PHP e usamos o HTML normal. O importante à notar aqui é que a lógica do script
continua intacta. Somente alguns blocos HTML será enviados de acordo com o que a declaração
strstr() retornar, ou seja TRUE
ou FALSE
. Em outras palavras,
se a palavra MSIE for encontrada ou não.