Jump to content


Photo

Pegar Url Embutida


  • Faça o login para participar
9 replies to this topic

#1 theb

theb

    kleber s. _

  • Usuários
  • 295 posts
  • Sexo:Masculino

Posted 24/09/2009, 09:51

Falae galera blz?!

Então, minha dúvida é a seguinte, quero pegar o endereço acessado por um encurtador de urls, por exemplo, o endereço http://hili.in/1 acessa o endereço http://www.twitamos.com. Eu quero passar o endereço encurtado e receber o endereço longo, que ele encurtou, saca? no script abaixo eu passo o endereço curto e pego toda a pagina que ele acessa e ponho num array, mas como faço para pegar a url original? :boxing:


$link	= "http://hili.in/1";
$lines	= file($link);
print_r($lines);


vlw!
+ Intercâmbio Exterior - Trabalhe e Estude fora do País.
+ Blogando Gospel - Entretenimento Gospel.
+ hili.in - Encurtador De Url.

#2 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 24/09/2009, 10:02

Envie uma requisição HEAD e capture o cabeçalho Location. :)

http://www.php.net/m...httprequest.php (y)

[]’sAté mais

#3 theb

theb

    kleber s. _

  • Usuários
  • 295 posts
  • Sexo:Masculino

Posted 24/09/2009, 10:15

Mas como eu faria isso no PHP, eu não teria que habilitar o "PECL pecl_http" ?
+ Intercâmbio Exterior - Trabalhe e Estude fora do País.
+ Blogando Gospel - Entretenimento Gospel.
+ hili.in - Encurtador De Url.

#4 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 24/09/2009, 10:20

Well, sim, a biblioteca pecl_http do PECL teria de ser/estar instalada. Mas existem outras inúmeras opções... A função get_headers() é um exemplo:

<?php

$headers = get_headers('http://hili.in/1', 1);

print $headers['Location'];

?>
[]’sAté mais

#5 theb

theb

    kleber s. _

  • Usuários
  • 295 posts
  • Sexo:Masculino

Posted 24/09/2009, 10:40

Perfeito cara! Obrigado!


Pelo que eu vi aqui não da para pegar pelo nome do indice, apenas pela posição, pois dependendo da url passada, ela muda.

print $headers['Location'];

vou fazer um loop no array e tratar essa parada.

---

Eu tinha achado isso aqui...

http://www.camondong...p-http-request/

Funcionou bem e tem bons métudos na classe.

Ex. que fiz...

require_once("class_HTTPRetriever.php");
$http = &new HTTPRetriever();

$http->post("http://zip.li/CGl4");

echo "Url encurtada: " . $http->stats["url"] . "<br />\n";
echo "Url de retorno: " . $http->response_headers["Location"] . "<br />\n";

+ Intercâmbio Exterior - Trabalhe e Estude fora do País.
+ Blogando Gospel - Entretenimento Gospel.
+ hili.in - Encurtador De Url.

#6 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 24/09/2009, 10:56

Perfeito cara! Obrigado!

Pelo que eu vi aqui não da para pegar pelo nome do indice, apenas pela posição, pois dependendo da url passada, ela muda.

print $headers['Location'];

vou fazer um loop no array e tratar essa parada.

Eu havia errado no exemplo, faltou o segundo parâmetro... O que pode acontecer é um servidor enviar o cabeçalho Location como location, o que é muuuito incomum (afinal é um padrão).

Quanto a classe, a HttpRequest do PECL é mais completa. :D

[]’sAté mais

#7 theb

theb

    kleber s. _

  • Usuários
  • 295 posts
  • Sexo:Masculino

Posted 24/09/2009, 11:02

Uhh blz cara! Show de bola! Consegui o que queria! vlw! :lol:
+ Intercâmbio Exterior - Trabalhe e Estude fora do País.
+ Blogando Gospel - Entretenimento Gospel.
+ hili.in - Encurtador De Url.

#8 theb

theb

    kleber s. _

  • Usuários
  • 295 posts
  • Sexo:Masculino

Posted 29/09/2009, 16:21

Ihhh cara, fui usar isso no server onde está hospedado meu site, e não está retornando tudo, soh vem isso aqui...

Array
(
	[0] => HTTP/1.1 200 OK
	[1] => Date: Tue, 29 Sep 2009 19:15:49 GMT
	[2] => Server: Apache
	[3] => Transfer-Encoding: chunked
	[4] => Content-Type: text/html
)

Sabe o q pode ser?
+ Intercâmbio Exterior - Trabalhe e Estude fora do País.
+ Blogando Gospel - Entretenimento Gospel.
+ hili.in - Encurtador De Url.

#9 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 29/09/2009, 17:17

Com que URL isto está acontecendo, especificamente?

[]’s Até mais

#10 theb

theb

    kleber s. _

  • Usuários
  • 295 posts
  • Sexo:Masculino

Posted 01/10/2009, 10:41

Então cara, o $headers['Location'] estava vindo como um array tipo...

$headers['Location']["url xpto"]
$headers['Location']["url que eu queira"]

Já estou tratando isso ai. vlw cara!



Ixi agora o get_headers() esta dando esse erro aqui...

PHP Warning:  get_headers() [<a href='function.get-headers'>function.get-headers</a>]: Couldn't resolve host name in 
PHP Warning:  get_headers(http://www.kitebahia.com) [<a href='function.get-headers'>function.get-headers</a>]: failed to open stream: Success in

Alguem sabe o pq disso? Tem como eu tratar para q minha aplicação não pare de rodar ao encontrar esse tipo de erro?
+ Intercâmbio Exterior - Trabalhe e Estude fora do País.
+ Blogando Gospel - Entretenimento Gospel.
+ hili.in - Encurtador De Url.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq