Variáveis Necessárias
As seguintes variáveis superglobais são necessárias para descobrir o endereço URL da página atual.
Variáveis Superglobais | Objetivos |
---|---|
$ _SERVER ['HTTPS'] | Retorna sobre se o protocolo HTTPS é usado no URL da página atual. |
$ _SERVER ['HTTP_HOST'] | Retorna o nome do servidor da página atual. |
$ _SERVER ['REQUEST_URI'] | Ele retorna o nome do recurso solicitado. |
$ _SERVER ['SERVER_PORT'] | Ele retorna o número da porta do servidor. |
$ _SERVER ['QUERY_STRING'] | Ele retorna o valor da string de consulta se existir no endereço URL da página atual. |
Exemplo 1: exibir o URL da página atual usando uma declaração condicional
O exemplo a seguir mostra como a declaração condicional pode ser usada para obter o protocolo usado na URL da página atual. Crie um arquivo PHP com o seguinte script.
O valor de $ _SERVER ['HTTP_HOST'] é usado para obter o nome de domínio do URL atual. O valor de $ _SERVER ['REQUEST_URI'] é usado para obter o nome do recurso solicitado. isset () função é usada para verificar se $ _SERVER ['HTTPS'] é um conjunto ou não, e se definido, então verifique o valor de $ _SERVER ['HTTPS'] se é sobre ou não. Em seguida, os valores dessas três variáveis são combinados com '//:' para recuperar o URL completo da página atual.
// Leia o nome de domínio da página atual$ domain = $ _SERVER ['HTTP_HOST'];
// Leia o recurso solicitado
$ resource = $ _SERVER ['REQUEST_URI'];
// Descubra o protocolo do url atual
if (isset ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS'] === 'on')
$ protocolo = "https";
senão
$ protocolo = "http";
// Combine todas as partes para obter o endereço URL completo
$ url = $ protocolo.": //".$ domínio.$ resource;
// Imprime o endereço URL da página atual
echo "
O endereço URL do atual
a página é:
". $ url;?> Resultado:
A seguinte saída aparecerá após a execução do script do servidor. O valor de $ _SERVER ['HTTPS'] não é sobre para o servidor local. Portanto, a saída mostra o http protocolo para o URL atual.
Exemplo 2: exibir o URL da página atual usando o operador ternário
O exemplo a seguir mostra como obter o URL completo da página atual usando o operador ternário. Crie um arquivo PHP com o seguinte script.
Se a condição é usada no exemplo anterior para descobrir qual protocolo é usado no URL da página atual. A mesma tarefa é feita usando o operador ternário neste script. isset () função é usada para verificar se $ _SERVER ['HTTPS'] é um conjunto ou não, e se o valor de $ _SERVER ['HTTPS'] é sobre, então, o operador ternário retornará HTTPS, caso contrário, retornará HTTP. As outras partes do URL são recuperadas e impressas como no exemplo anterior.
// Descubra o protocolo do url atual$ protocol = (isset ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS']
== 'ligado' ? "https": "http");
// Leia o nome de domínio da página atual
$ domain = $ _SERVER ['HTTP_HOST'];
// Leia o recurso solicitado
$ resource = $ _SERVER ['REQUEST_URI'];
// Combine todas as partes para obter o endereço URL completo
$ url = $ protocolo.": //".$ domínio.$ resource;
// Imprime o endereço URL da página atual
echo "
O endereço URL da página atual é:
". $ url;?>
Resultado:
A seguinte saída aparecerá após a execução do script do servidor. O valor de $ _SERVER ['HTTPS'] não é sobre para o servidor local. Portanto, a saída mostra o protocolo HTTP para o URL atual.
Exemplo 3: exibir o URL da página atual com base no número da porta
Nos dois exemplos anteriores, o valor de $ _SERVER ['HTTPS'] é usado para descobrir o protocolo do URL atual da página, e nenhuma string de consulta é usada com o URL. O exemplo a seguir mostra como a variável $ _SERVER ['SERVER_PORT'] pode ser usada para descobrir o protocolo e recuperar o endereço URL completo com a string de consulta. Crie um arquivo PHP com o seguinte script.
Aqui, várias condições lógicas e operador ternário são usados para descobrir o protocolo. Se o valor de $ _SERVER ['HTTPS'] estiver vazio ou definido como fora, então ele irá verificar o valor de $ _SERVER ['SERVER_PORT'] para descobrir o protocolo da URL atual. A variável $ _SERVER ['QUERY_STRING'] é usada para recuperar o valor da string de consulta do URL.
// Descubra o protocolo do url atual$ protocol = ((!vazio ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS']
!= 'desligado') || $ _SERVER ['SERVER_PORT'] == 443) ? "https: //": "http: //";
// Leia o nome de domínio da página atual
$ domain = $ _SERVER ['HTTP_HOST'];
// Leia o recurso solicitado
$ resource = $ _SERVER ['REQUEST_URI'];
// Leia o valor da string de consulta
$ query = $ _SERVER ['QUERY_STRING'];
// Combine todas as partes para obter o endereço URL completo
$ url = $ protocolo.$ domínio.$ resource;
// Imprime o endereço URL da página atual
echo "
O endereço URL completo da página atual é:
". $ url;// Imprime a parte da string de consulta
echo "
A string de consulta é:
". $ query;?>
Resultado:
A seguinte saída aparecerá após a execução do script acima do servidor sem qualquer string de consulta. Nenhuma string de consulta é fornecida no URL. Portanto, a saída mostra a string de consulta vazia.
A seguinte saída aparecerá após a execução do script acima a partir do servidor com a string de consulta. O resultado a seguir mostra o endereço URL com a string de consulta e a string de consulta separadamente.
Conclusão
Diferentes maneiras de recuperar o URL completo da página atual são mostradas neste tutorial usando vários exemplos. A maneira de separar o URL e a string de consulta também é mostrada neste tutorial. Esperançosamente, este tutorial ajudará os leitores a saber como ler o URL completo da página atual usando o script PHP.