tadarank afiliados

24 fevereiro, 2011

Pegando o endereço da URL atual em PHP

Várias e várias vezes precisamos saber o caminho COMPLETO da url atual em PHP mas as variáveis globais não ajudam.
Seja para inserir em botões do twitter, facebook, etc.

As globais do PHP só informam após o domínio do site (www.qualquercoisa.com), o que muitas vezes não serve de nada para um botão do twitter por exemplo.

Pesquisei na net pra ver se já tinha algo pronto pra eu usar e nada. Só tinha gente gambiarrando com o SCRIPT_NAME , REQUEST_URI ou PHP_SELF que não valem de nada quando você precisa do endereço COMPLETO incluindo o 'http://' (protocolo) e o 'www.qualquercoisa.com' (domínio).

Eu precisava era de algo parecido com o this.location comum no javascript.

Daí resolvi fazer o que sei: gambiarrar também.

Saiu o código abaixo:

$proto = strtolower(preg_replace('/[^a-zA-Z]/','',$_SERVER['SERVER_PROTOCOL'])); //pegando só o que for letra 
$location = $proto.'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

echo $location; 
Prontinho, espero ter ajudado. Comenta ae.

Gostou da dica acima? Então clica nos botões de compartilhamento abaixo e me ajude a dica a subir no Google.

8 comentários:

  1. Não sei se entendi bem qual endereço você quer obter, mas usando SCRIPT_NAME você não estará vendo o endereço que foi usado para acessar o site, o que eu entendi ser seu objetivo.

    Em vez de SCRIPT_NAME, pode-se usar REQUEST_URI para obter o endereço usado para acessar a página atual.

    Com SCRIPT_NAME, quem usa rewrite receberá sempre a mesma URL (que será o script que recebe a requisição).

    ResponderExcluir
  2. Serve não cara.
    SCRIPT_NAME, REQUEST_URI ou PHP_SELF não pegam o protocolo nem o domínio.
    Só pegam o que vem DEPOIS do domínio.

    ResponderExcluir
  3. Não estou dizendo para usar apenas REQUEST_URI. Digo para usar REQUEST_URI no lugar de SCRIPT_NAME, caso contrário quem usa Wordpress, por exemplo, vai obter sempre http://dominio.tld/index.php que é para onde o rewrite encaminha as requisições.

    ResponderExcluir
  4. para mim deu certinho!
    E olha que eu to dois dias me quebrando nisso...!

    ResponderExcluir
  5. Fala ae meu camarada, muito bom seu tuto, mas o meu problema é um pouco mais complicado.

    Na URL que eu preciso pegar há uma "#" e uma numeração após, quando uso seu código ou outros similares que achei na web não pega o que vem depois dessa "#".

    Tem alguma noção de como posso resolver essa parada?

    ResponderExcluir
    Respostas
    1. Cara, o que tem após o # é a nível de navegador. Só o navegador fica sabendo (até onde sei).

      Excluir
    2. Boa tarde sou meio leigo, tenho uma página que é criada de forma dinâmica e estou inserindo os comentários de facebook, eu entendi que esse script pega a url completa incluindo tudo mais o que eu coloco dentro do href="" para puxar essa url?
      Abraços

      Excluir

Resultado! Concursos