Newsgroup: it.comp.www.php
Titolo: principiante: identificare un indirizzo accorciato tramite un servizio di "shortening url"

Come faccio a scoprire il reale indirizzo che si nasconde dietro un'url 
del tipo 
goo.gl/blablabla
?
C'ï¿œ per caso qualche routine giï¿œ pronta che posso usare?
  Grazie.

del tipo 
goo.gl/blablabla
?
Il "blablabla" non è altro che la traduzione in lettere di un indice in un
database:
	1.	
http://www.google.com
	2.	
http://www.google.it
...se ora arriva uno e registra lo shorturl "
www.corriere.it
", allora il 3
(che poi magari diventa "qwbalz") puntera' a 
www.corriere.it
, mentre se al
contrario, per qualsiasi motivo, arriva prima un altro tizio e registra lo
shorturl "
www.repubblica.it
", allora l'ID qwbalz corrispondera' al sito di
www.repubblica.it
 .
Non si tratta cioe' di una qualche compressione mystica che codifica in un
pacchettino di sei lettere ("qwbalz") un URL intero.
Perciò dal pacchettino non puoi risalire all'URL in nessun modo - non piu'
di quanto tu possa risalire, dalla targa (assegnata a turno) alla marca di
un'automobile.
Ma, come per le targhe, puoi accedere al database e chiedere.
Per esempio se con cURL (o anche file_get_contents()) apri uno shorturl ti
vedi ritornare, ad es.:
mintaka$ lynx -mime_header 
http://goo.gl/fb/O7FmY
HTTP/1.0 301 Moved Permanently
Content-Type: text/html; charset=UTF-8
Expires: Sat, 23 Jul 2011 07:21:08 GMT
Date: Sat, 23 Jul 2011 07:21:08 GMT
Cache-Control: private, max-age=86400
Location:
http://feeds.feedburner.com/~r/technologybitsbytesnibbles/AZit/~3/ixgRNiLnjqk/3653?utm_source=feedburner&utm_medium=twitter&utm_campaign=cyndidannerkuhn
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
<HTML>
<HEAD>
<TITLE>Moved Permanently</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Moved Permanently</H1>
The document has moved <A
HREF="
http://feeds.feedburner.com/~r/technologybitsbytesnibbles/AZit/~3/ixgRNiLnjqk/3653?utm_source=feedburner&amp;utm_medium=twitter&amp;utm_campaign=cyndidannerkuhn
">here</A>.
</BODY>
</HTML>
mintaka$
Quindi basta che tu legga il contenuto e, per esempio (non ho provato):
	function decode_googl($shorturl)
	{
		$html = file_get_contents($shorturl);
		if (preg_match('#<A HREF="(.*)">here</A>#sim', $html,
$gregs))
			return $gregs[1];
		return false;
	}	
Possibili problemi:
	1. Molti server NON TI FANNO USARE file_get_contents da dentro
	   uno script PHP. Quasi sempre, e' un loro diritto, approvato
	   da te al momento della stipula del contratto - e quindi non
	   ci puoi far niente.
	2. In teoria per un uso professionale dovresti usare le API di
 
goo.gl
: file_get_contents e' una animalata delle mie. Cerca
	   il progetto su GoogleCode (pero' IIRC e' in Python, non PHP
	   - potrei sbagliarmi).
	3. Se Google cambia quell'A tag, o ne aggiunge un altro, *BAM*
	   la regexp non funziona piu' e devi modificarla.
	4. Potrei non aver previsto ogni possibile problemi. Sue me.
Leonardo
-- 
Surstangas via akcipitr', la ceval' fojnumas nur:
Jen vigla damo en brakum', kaj vi pensas pri forkur'?
Do li turnis sin, kaj turnis sin, kaj ekdormis sen singard';
Kaj lin apudis je l' vekigx, soldatoj kaj Barnard'.

 C'è per caso qualche routine già pronta che posso usare?
http://php.net/manual/en/ref.curl.php
guarda l'esempio:
"Get url content and response headers (given a url, follows all 
redirections on it and returned content and response headers of final 
url)"

 Grazie.
Rinnovo i miei ringraziamenti per le competenti e gentili risposte.