Algo Útil
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:
$_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:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
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 das variáveis que é automaticamente
disponibilizada pelo PHP. A lista dessas variáveis pode ser vista na seção
Variáveis Reservadas
do manual, ou obtida do restulado da
função phpinfo() utilizada no exemplo
anterior.
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:
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
echo 'You are using Internet Explorer.<br />';
}
?>
Um exemplo de Saída seria:
You are using Internet Explorer.<br />
Aqui nós introduzimos alguns conceitos novos. 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 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, ela faz uma busca
em uma palavra por uma outra palavra. Neste caso nós
procuramos 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 não encontrar
a função retorna FALSE. Nesse 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. Se você estiver incerto em como utilizar funções você deve olhar
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 à notar aqui
é que a lógica do script continua intacta. Somente
alguns blocos HTML será enviados dependendo do
resultado da chamada a strpos() retornar. Em outras palavras, depende
se a palavra MSIE for encontrada ou não.