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. Para fazer isto nós iremos 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 é $_SERVER['HTTP_USER_AGENT'].
Nota:
$_SERVER é uma variável especial reservada do PHP que contém todas as informações sobre o servidor web. Ela é conhecida como uma superglobal. Veja a página do manual relacionada às superglobais 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. A partir do PHP 5.4.0 essas antigas variáveis foram removidas. (Veja também a nota abaixo sobre código antigo.)
Para exibir esta variável, nós podemos fazer isto:
Exemplo #1 Imprimindo uma variável (elemento do 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 imprimimos um elemento do Array. Arrays podem ser muito úteis.
$_SERVER é somente uma das variáveis que o PHP automaticamente disponibiliza para você. A lista destas variáveis pode ser vista na seção Variáveis Reservadas do manual ou você pode obter uma lista completa delas olhando o resultado da função phpinfo() utilizada no exemplo da seção anterior.
Você pode colocar múltiplas instruçõ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 você pode fazer isso:
Exemplo #2 Exemplo utilizando estruturas de controle e funções
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
echo 'You are using Internet Explorer.<br />';
}
?>
Um exemplo de saída deste script seria:
You are using Internet Explorer.<br />
Aqui nós introduzimos alguns conceitos novos. Nós temos a declaração if. Se você está familiarizado com a sintaxe básica usada pela linguagem C isto parecerá ser lógico para você. Se não você provavelmente deve ver um livro introdutório de PHP e ler os capítulos iniciais, ou ainda ler a seção Referência da Linguagem do manual.
O segundo conceito que iremos abordar é a chamada à função strpos().
A função strpos() vem junto com
o PHP e busca uma palavra em outra palavra. Neste caso nós estamos
procurando pelo texto 'MSIE'
dentro de
$_SERVER['HTTP_USER_AGENT']. Se
a palavra for encontrada, a função retorna a posição
do texto pesquisado em relação ao começo do texto onde houve a pesquisa. Se a palavra não for encontrada
a função retorna false
. Neste exemplo, se não retornar false
o if avalia para true
e o código dentro dos {colchetes} é executado. Caso contrário o código não
roda. Tente criar exemplos similares
com if,
else, e outras
funções como strtoupper() e
strlen(). Cada página relacionada contém exemplos
também. Se você estiver incerto em como utilizar funções você deve ler
as páginas sobre como ler uma
definição de função e a seção sobre
funções do PHP.
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 #3 Mesclando entre os modos PHP e HTML
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?>
<h3>strpos() must have returned non-false</h3>
<p>You are using Internet Explorer</p>
<?php
} else {
?>
<h3>strpos() must have returned false</h3>
<p>You are not using Internet Explorer</p>
<?php
}
?>
Um exemplo de saída deste script poderia ser:
<h3>strpos() must have returned non-false</h3> <p>You are using Internet Explorer</p>
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 a notar aqui
é que a lógica do script continua intacta. Somente
um dos blocos HTML será enviado dependendo do
resultado da chamada à função strpos(). Em outras palavras, depende
se a palavra MSIE
for encontrada ou não.