Como obter o URL completo da página atual com PHP



php

Neste tutorial, vamos mostrar como obter o URL completo da página que está sendo visualizada no navegador utilizando PHP. Embora o código seja bem simples, ele é muito útil para desenvolvedores de sites dinâmicos. 

Variável Global $_SERVER

1. Primeiro vamos conhecer a variável global $_SERVER:  

$_SERVER é uma variável global tipo array, contendo informações da página e do servidor como cabeçalhos, paths, e localizações do script - Documentação completa da variável global $_SERVER 

Observação: Não há garantia que as entradas deste array são iguais para todos os servidores. Alguns servidores podem omitir ou criar novos elementos.

2. Veja todas entradas da variável global $_SERVER acessando o comando: print_r($_SERVER); 

<?php
echo '<pre>';
print_r($_SERVER);
echo '</pre>'; 

Veja na imagem do exemplo abaixo como a variável $_SERVER informa os dados do servidor e do ambiente de execução da página que você está acessando. 

3. Observe que a variável $_SERVER armazena várias informações da página corrente, onde cada informação é identificada por uma chave ou entrada. Ex. [HTTP_HOST]

4. Verifique e conheça os elementos que são importantes para o nosso tutorial, como:

  • [SERVER_PROTOCOL]
  • [HTTPS]
  • [HTTP_HOST]
  • [SCRIPT_NAME]
  • [QUERY_STRING]
  • [REQUEST_URI]

Elementos da variável $_SERVER para identificar a página corrente

1. Para identificar e obter o endereço URL do documento atual que você está acessando, utilize o código abaixo:

$protocolo = 'http';
$url = '://'.$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING'];

echo $protocolo.$url; 

2. Se você precisa verificar ou identificar se o protocolo é https, um boa solução seria utilizar a entrada [HTTPS]. Neste caso, veja como fica o código do nosso exemplo:

$protocolo = (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS']=="on") ? "https" : "http");
$url = '://'.$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING'];

echo $protocolo.$url; 

😀 Para visualizar, abra o link: Exemplo 1 - com protocolo http://. A figura abaixo mostra o resultado no navegador.

 

😀 Para visualizar, abra o link: Exemplo 1 - com protocolo https://. A figura abaixo mostra o resultado no navegador. 

3. Para facilitar, podemos substituir as entradas [SCRIPT_NAME] e [QUERY_STRING] pela entrada [REQUEST_URI], veja o código do nosso exemplo abaixo:

 
$protocolo = (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS']=="on") ? "https" : "http");
$url = '://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

echo $protocolo.$url;
😀 Para visualizar, abra o link: Exemplo 2 - com protocolo http://. A figura abaixo mostra o resultado no navegador. 

😀 Para visualizar, abra o link: Exemplo 1 - com protocolo https://. A figura abaixo mostra o resultado no navegador.  

 Documentação Oficial

1. [Documentação PHP - variável $_SERVER] » Sobre a variável "superglobal" $_SERVER.

O anúncio abaixo ajuda manter o Portal Visual Dicas

Comentários

×

Infomações do site / SEO