(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
$_SERVER -- $HTTP_SERVER_VARS [obsoleto] — Informação do servidor e ambiente de execução
$_SERVER é um array contendo informação como cabeçalhos, paths, e localizações do script. As entradas neste array são criadas pelo servidor web. Não há garantia que cada servidor web proverá algum destes; servidores podem omitir alguns, ou fornecer outros não listados aqui. Dito isso, um grande número dessas variáveis são previstas pela » CGI 1.1 specification, então você deve estar hábil para esperá-las.
Nota: A partir do PHP 5.4.0, $HTTP_SERVER_VARS contém a mesma informação inicial, mas não é uma superglobal. (Note que $HTTP_SERVER_VARS e $_SERVER são variáveis diferentes e que o PHP manuseia-as diferentemente)
Você pode ou não encontrar algum dos seguintes elementos em $_SERVER. Note que poucas, se alguma, dessas estarão disponíveis (ou ter algum significado) se executando o PHP na linha de comando.
CGI/1.1
'.
Nota: No Apache 2, você 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.
HTTP/1.0
';
GET
',
'HEAD
', 'POST
' ou 'PUT
'.
Nota:
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
.
Accept:
da
requisição atual, se houver.
Accept-Charset:
da requisição atual, se houver. Exemplo:
'iso-8859-1,*,utf-8
'.
Accept-Encoding:
da requisição atual, se houver. Exemplo: 'gzip
'.
Accept-Language:
da requisição atual, se houver. Exemplo 'en
'.
Connection:
da
requisição atual, se houver. Exemplo: 'Keep-Alive
'.
Host:
da
requisição atual, se houver.
User-Agent:
da
requisição atual, se houver. É uma string
denotando o agente de usuário pelo qual a página é acessada. Um
exemplo típico é: Mozilla/4.5 [en] (X11; U;
Linux 2.2.9 i586). Além de outras coisas, você
pode utilizar este valor com get_browser() para
personalizar a geração de suas páginas para as capacidades do agente do
usuário.
Nota: Note que quando usando ISAPI com IIS, o valor será
off
se a requisição não for feita por protocolo HTTPS.
Nota: 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().
O caminho absoluto o script atualmente em execução.
Nota:
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.
80
'.
Utilizando SSL, entretanto, mudará esse valor para a porta de comunicação
segura HTTP.
Nota: 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.
Nota: A partir do PHP 4.3.2, PATH_TRANSLATED não mais existe implicitamente sob a SAPI do Apache 2, ao contrário da mesma situação no Apache 1, onde ela tinha o mesmo valor da variável de servidor SCRIPT_FILENAME, quando a mesma não era configurada pelo Apache. Essa mudança foi realizada para conformidade com a especificação CGI, onde PATH_TRANSLATED deve existir somente se PATH_INFO estiver definida. Usuários do Apache 2 podem usar
AcceptPathInfo = On
dentro do httpd.conf para definir o PATH_INFO.
/index.html
'.
/some/stuff
Versão | Descrição |
---|---|
5.4.0 | Pela remoção do registro de arrys longos, $HTTP_SERVER_VARS não está mais diponível. |
5.3.0 | A diretiva register_long_arrays que possibilitava a disponibilidade de $HTTP_SERVER_VARS tornou-se obsoleta. |
4.1.0 | Introduzida $_SERVER que torna obsoleta a $HTTP_SERVER_VARS. |
Exemplo #1 Exemplo da $_SERVER
<?php
echo $_SERVER['SERVER_NAME'];
?>
O exemplo acima irá imprimir algo similar à:
www.example.com
Nota:
Esta é uma 'superglobal', ou global automática, variável. Isto simplismente significa que ela está disponível em todos escopos pelo script. Não há necessidade de fazer global $variable; para acessá-la dentro de uma função ou método.