$_SERVER
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
$_SERVER — Informação do servidor e ambiente de execução
Descrição
$_SERVER é um array contendo informação como headers, caminhos, e outras informações do script. As informações nesse array são criadas pelo servidor web específico, e portanto não há garantias que sempre existirá as mesmas informações, podendo algumas serem omitidas ou adicionadas em relação a lista a seguir. Entretanto, a maioria dessas variáveis são documentadas na » especificação CGI/1.1, e estão normalmente definidas.
Note: Quando rodando o PHP na linha de comando a maioria dessas informações não estarão disponíveis ou não terão qualquer sentido.
Além dos valores listados a seguir, o PHP irá criar itens adicionais
com valores dos headers de requisição. Esses itens serão prefixados com
HTTP_
seguido do nome do header,
capitalizados e com underlines ao invés de hifens.
Por exemplo, o header Accept-Language
estará disponível
como $_SERVER['HTTP_ACCEPT_LANGUAGE']
.
Índices
- 'PHP_SELF'
- O nome do arquivo do script que está executando, relativa à raiz do documento. Por exemplo, $_SERVER['PHP_SELF'] em um script no endereço http://example.com/foo/bar.php seria /foo/bar.php. A constante __FILE__ contém o caminho completo e nome do atual arquivo (possivelmente incluído). Se estiver rodando o PHP em linha de comando, esta variável contém o nome do script.
- 'argv'
- Array de argumentos passado para o script. Quando o script é executado na linha de comando, isto permite um acesso aos parâmetros de linha de comando no estilo do C. Quando chamado via método GET, ele conterá a query string.
- 'argc'
- Contém o número de parâmetros da linha de comando passados para o script (se executando da linha de comando).
- 'GATEWAY_INTERFACE'
-
O número de revisão da especificação CGI que o servidor está utilizando,
por exemplo:
'CGI/1.1'
. - 'SERVER_ADDR'
- O endereço IP do servidor onde está o script em execução.
- 'SERVER_NAME'
-
O nome host do servidor onde o script atual é
executado. Se o script está rodando em um host virtual, este
será o valor definido para aquele host virtual.
Note: No Apache 2, você deve definir
UseCanonicalName = On
eServerName
. Caso contrário, este valor refletirá o nome do servidor fornecido pelo cliente, que pode ser forjado. Não é seguro confiar neste valor em contextos que dependam de segurança. - 'SERVER_SOFTWARE'
- A string de identificação do servidor, fornecida nos headers quando respondendo a requests.
- 'SERVER_PROTOCOL'
-
Nome e número de revisão do protocolo de informação pelo qual a
página foi requerida, por exemplo
'HTTP/1.0'
; - 'REQUEST_METHOD'
-
Contém o método de request utilizando para acessar a página. Geralmente '
'GET'
', ''HEAD'
', ''POST'
' ou ''PUT'
'.Note:
O script PHP é terminado depois de enviado cabeçalhos (significa depois de produzir alguma saída sem saída do buffer) se o método da requisição for
HEAD
. - 'REQUEST_TIME'
- O timestamp do início da requisição.
- 'REQUEST_TIME_FLOAT'
- O timestamp, com precisão em microsegundos, do início da requisição.
- 'QUERY_STRING'
- A query string, se houver, pela qual a página foi acessada.
- 'DOCUMENT_ROOT'
- O diretório raiz sob onde o script atual é executado, como definido no arquivo de configuração do servidor.
- 'HTTPS'
- Define para um valor não vazio se o script foi requisitado através do protocolo HTTPS.
- 'REMOTE_ADDR'
- O endereço IP de onde o usuário está visualizando a página atual.
- 'REMOTE_HOST'
-
O nome do host que o usuário utilizou para chamar a página
atual. O DNS reverso (lookup) do
REMOTE_ADDR do usuário.
Note: Seu servidor web precisa estar configurado para criar essa variável. Por exemplo, no Apache você precisa colocar um
HostnameLookups On
dentro do httpd.conf. Veja também gethostbyaddr(). - 'REMOTE_PORT'
- A porta TCP na máquina do usuário utilizada para comunicação com o servidor web.
- 'REMOTE_USER'
- O usuário autenticado
- 'REDIRECT_REMOTE_USER'
- O usuário autenticado utilizado se a requisição foi redirecionada internamente.
- 'SCRIPT_FILENAME'
-
O caminho absoluto do script atualmente em execução.
Note:
Se o script for executado pela CLI com um caminho relativo, como file.php ou ../file.php, $_SERVER['SCRIPT_FILENAME'] irá conter o caminho relativo especificado pelo usuário.
- 'SERVER_ADMIN'
- O valor fornecido pela diretiva SERVER_ADMIN (do Apache) no arquivo de configuração do servidor. Se o script está sendo executado em um host virtual, este será os valores definidos para aquele host virtual.
- 'SERVER_PORT'
-
A porta na máquina servidora utilizada pelo servidor web
para comunicação. Como default, este valor é '
'80'
'. Utilizando SSL, entretanto, mudará esse valor para a porta de comunicação segura HTTP.Note: Utilizando o Apache 2, você deve configurar
UseCanonicalName = On
, assim comoUseCanonicalPhysicalPort = On
para obter a porta física (real), caso contrário, este valor pode ser falsificado e pode, ou não, retornar como valor a porta física. Não é seguro confiar neste valor em contextos que dependem de segurança. - 'SERVER_SIGNATURE'
- String contendo a versão do servidor e nome do host virtual que é adicionado às páginas geradas no servidor, se ativo.
- 'PATH_TRANSLATED'
-
O caminho real do script relativo ao sistema de arquivos
(não o document root), depois realizou todos os mapeamentos
de caminhos (virtual-to-real).
Note: Usuários do Apache 2 podem usar
AcceptPathInfo = On
dentro do httpd.conf para definir o PATH_INFO. - 'SCRIPT_NAME'
- Contém o caminho completo do script atual. Útil para páginas que precisam apontar para elas mesmas (dinamicamente). A constante __FILE__ contém o caminho completo e nome do arquivo (mesmo incluído) atual.
- 'REQUEST_URI'
-
O URI fornecido para acessar a página atual, por
exemplo, '
/index.html
'. - 'PHP_AUTH_DIGEST'
- Quando executando no Apache como módulo fazendo autenticação HTTP esta variável é definida para o cabeçalho 'Authorization' enviado pelo cliente (que você pode então usar para fazer apropriada validação).
- 'PHP_AUTH_USER'
- Quando efetuando autenticação HTTP, esta variável estará definida com o username fornecido pelo usuário.
- 'PHP_AUTH_PW'
- Quando efetuando autenticação HTTP, esta variável estará definida com a senha fornecida pelo usuário.
- 'AUTH_TYPE'
- Quando efetuando autenticação HTTP, esta variável estará definida com o tipo de autenticação utilizado.
- 'PATH_INFO'
-
Contém qualquer informação fornecida pelo usuário, se disponível,
que levam ao nome do script atual, precedendo a query
string. Por exemplo, se o script atual fosse acessado via a URL
http://www.example.com/php/path_info.php/some/stuff?foo=bar,
então $_SERVER['PATH_INFO']teria como
valor
/some/stuff
- 'ORIG_PATH_INFO'
- Versão original do 'PATH_INFO' antes de ser processada pelo PHP.
Exemplos
Example #1 Exemplo da $_SERVER
<?php
echo $_SERVER['SERVER_NAME'];
?>
O exemplo acima produzirá algo semelhante a:
www.example.com
Notas
Note:
Esta é uma variável 'superglobal' ou variável global automática. Isso significa simplesmente que ela está disponível em todos os escopos de um script. Não há necessidade de usar global $variable; para acessá-la dentro de funções ou métodos.