'HTTPS'
Set to a non-empty value if the script was queried through the HTTPS protocol. Note that when using ISAPI with IIS, the value will be off if the request was not made through the HTTPS protocol.
Does the same for IIS7 running PHP as a Fast-CGI application.
$_SERVER
$HTTP_SERVER_VARS [deprecated]
$_SERVER -- $HTTP_SERVER_VARS [deprecated] — Informação do servidor e ambiente de execução
Descriçã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.
$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.
- '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/test.php/foo.bar seria /test.php/foo.bar. A constante __FILE__ contém o caminho completo e nome do atual arquivo (i.e. incluído). Se estiver rodando o PHP em linha de comando, esta variável contém o nome do script desde o PHP 4.3.0. Anteriormente ela não estava disponível.
- '$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.
- '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'.
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.
- 'REQUEST_TIME'
- O timestamp do início da requisição. Disponível desde o PHP 5.1.0.
- 'QUERY_STRING'
- A query string (string de solicitação), se houver, pela qual a página foi acessada.
- 'DOCUMENT_ROOT'
- O diretório raiz sob onde o script atual é executado, como definido no arquivos de configuração do servidor.
- 'HTTP_ACCEPT'
- O conteúdo do header Accept: da requisição atual, se houver.
- 'HTTP_ACCEPT_CHARSET'
- O conteúdo do header Accept-Charset: da requisição atual, se houver. Exemplo: 'iso-8859-1,*,utf-8'.
- 'HTTP_ACCEPT_ENCODING'
- O conteúdo do header Accept-Encoding: da requisição atual, se houver. Exemplo: 'gzip'.
- 'HTTP_ACCEPT_LANGUAGE'
- O conteúdo do header Accept-Language: da requisição atual, se houver. Exemplo 'en'.
- 'HTTP_CONNECTION'
- O conteúdo do header Connection: da requisição atual, se houver. Exemplo: 'Keep-Alive'.
- 'HTTP_HOST'
- O conteúdo do header Host: da requisição atual, se houver.
- 'HTTP_REFERER'
- O endereço da página (se houver) através da qual o agente do usuário acessou a página atual. Essa diretiva é informada pelo agente do usuário. Nem todos os browsers geram esse header, e alguns ainda possuem a habilidade de modificar o conteúdo do HTTP_REFERER como recurso. Em poucas palavras, não é confiável.
- 'HTTP_USER_AGENT'
- O conteúdo do header 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.
- 'HTTPS'
- Define para um valor não vazio se o script foi requisitado através do protocolo HTTPS. Note que quando usando ISAPI com IIS, o valor será off se a requisição não for feita por protocolo HTTPS.
- 'REMOTE_ADDR'
- O endereço IP de onde o usuário está visualizado 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.
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().
- 'REMOTE_PORT'
- A porta TCP na máquina do usuário utilizada para comunicação com o servidor web.
- 'SCRIPT_FILENAME'
-
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.
- '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.
- '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).
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. Apache 2 users may use AcceptPathInfo = On inside httpd.conf to define 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 executando sob o Apache ou IIS (ISAPI no PHP 5) como módulo e fazendo autenticaçào HTTP, esta variável estará definida com o username fornecido pelo usuário.
- 'PHP_AUTH_PW'
- Quando executando sob o Apache ou IIS (ISAPI no PHP 5) como módulo e fazendo autenticaçào HTTP, esta variável estará definida com a senha fornecida pelo usuário.
- 'AUTH_TYPE'
- Quando executando sob o Apache como módulo e fazendo autenticaçào HTTP, esta variável estará definida com o tipo de autenticação utilizado.
Histórico
| Versão | Descrição |
|---|---|
| 4.1.0 | Introduzida $_SERVER que torna obsoleta a $HTTP_SERVER_VARS. |
Exemplos
Exemplo #1 Exemplo da $_SERVER
<?php
echo $_SERVER['SERVER_NAME'];
?>
O exemplo acima irá imprimir algo similar a:
www.example.com
Notas
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.
$_SERVER
12-Oct-2008 04:21
08-Oct-2008 09:44
This is based on the post from 'emailfire at gmail dot com' (above)
If you only want to get the dir off the file you can use:
<?php
$this_dir = $_SERVER['SCRIPT_FILENAME'];
if (strpos($this_dir, basename($_SERVER['REQUEST_URI'])) !== false) $this_dir = reset(explode(basename($_SERVER['REQUEST_URI']), $this_dir));
echo $this_dir;
?>
16-Sep-2008 07:43
When using the $_SERVER['SERVER_NAME'] variable in an apache virtual host setup with a ServerAlias directive, be sure to check the UseCanonicalName apache directive. If it is On, this variable will always have the apache ServerName value. If it is Off, it will have the value given by the headers sent by the browser.
Depending on what you want to do the content of this variable, put in On or Off.
09-Sep-2008 01:26
Please note on Windows/IIS - the variable 'USER_AUTH' will return the username/identity of the user accessing the page, i.e. if anonymous access is off, you would normally get back "$domain\$username".
12-Aug-2008 08:24
Note that, in Apache 2, the server settings will affect the variables available in $_SERVER. For example, if you are using SSL, the following directive will dump SSL-related status information, along with the server certificate and client certificate (if present) into the $_SERVER variables:
SSLOptions +StdEnvVars +ExportCertData
06-Aug-2008 02:55
I think the HTTPS element will only be present under Apache 2.x. It's not in the list of "special" variables here:
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteCond
But it is here:
http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritecond
31-Jul-2008 11:25
It is worth noting here that if you use $_SERVER['REQUEST_URI'] with a rewrite rule, the original, not rewritten URI will be presented.
26-May-2008 04:49
REQUEST_URI is useful, but if you want to get just the file name use:
<?php
$this_page = basename($_SERVER['REQUEST_URI']);
if (strpos($this_page, "?") !== false) $this_page = reset(explode("?", $this_page));
?>
