Na sua aplicação PHP pode acontecer de você precisar saber a URL atual ( a URL na barra de endereço do navegador).

No PHP existem algumas variáveis globais  que permitem obter a URL atual através de um processo bem  simples. Você pode obter todas informações sobre a URL atual por partes, usando o array $_SERVER. Você pode pegar o protocolo (http,https), hostname (www.domínio.com)scriptname (diretório/nome do arquivo) e parâmetros passados na URL.



Após essa pequena introdução, vamos ver como isso funciona.Primeiramente vamos fazer nossos testes/estudos em cima de uma estrutura complexa de URL como esta abaixo:

Vamos pegar essa URL e dividir em pedaços:

http – Este é o protocolo
www.dominio.com – Este é hostname
teste – Este é o diretório
meuscript.php – Este é o nome do arquivo que contém o script PHP
estado  – Este é o primeiro parâmetro e seu valor é ‘SC’
cidade – Este é o segundo parâmetro e seu valor é ‘Florianopolis’

Agora vamos tentar construir a mesma URL, mas com PHP.

Pegando o Protocolo – http

O protocolo da URL pode ser lido através da variável $_server[‘SERVER_PROTOCOL’].

No entanto se você for verificar, verá que não obterá simplesmente http ou https, mas sim uma sequência como esta: HTTP/1.1.

Então iremos precisar de alguma forma manipular a string para obter o protocolo limpo, ou seja, http ou https apenas:

Pegando o Hostname – www.dominio.com

Como próximo passo nós iremos descobrir o hostname. Faremos isto com a variável $_SERVER[‘HTTP_HOST’] da seguinte e simples forma:

Pegando o scriptname – (diretório/nome do arquivo) – teste/meuscript.php

A variável $_SERVER[‘SCRIPT_NAME’] contém o caminho completo com o nome do atual diretório e arquivo PHP:

Pegando os parâmetros da URL – estado=SC&cidade=Florianopolis

A última parte da URL pegaremos com a variável $_SERVER[‘QUERY_STRING’] e podemos fazer de forma similar ao que já estamos fazendo com as outras partes:

Pegando a atual URI – (Uniform Resource Identifier) – /teste/meuscript.php?estado=SC&cidade=Florianopolis

Se o protocolo e o hostname não são importantes para você e você apenas quer o scriptname (caminho para o script PHP) e os parâmetros, então você pode simplesmente utilizar a variável $_SERVER[‘REQUEST_URI’] da seguinte forma:

De acordo com tudo que vimos, para pegar a atual URL da página podemos fazer algo como:

Nota:  Quase todos os servidores modernos que suportam PHP utilizam as variáveis $_SERVER, mas você precisa saber que: “As entradas neste array são criadas pelo servidor web e não há garantia que cada servidor web proverá todas as entradas deste array”.

Veja no manual mais informações sobre a variável $_SERVER

Bons estudos!