Um simples tutorial
PHP Manual

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. A partir do 5.4.0 essas variáveis antigas foram removidas (veja a nota abaixo sobre código antigo.)

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:

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 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.


Um simples tutorial
PHP Manual