[Pillola PHP] Convertire un URL lungo in uno breve (TinyURL)

Trasformare un URL normale in uno breve

L’altro giorno m’è servito convertire un URL in URL breve in uno script PHP, ecco a voi una piccola funzione per risolvere il problema.

Esistono diversi siti ormai che convertono URL lunghi in URL brevi, due esempi su tutti sono http://ur1.ca (servizio aperto offerto da StatusNET, società dietro identi.ca) e TinyURL (uno dei primi siti ad offrire questo tipo di servizio, se non il primo). In questo esempio utilizzerò TinyURL per semplicità poichè tramite una pagina è possibile ricevere direttamente in output l’URL breve.

Se andate all’indirizzo http://tinyurl.com/api-create.php?url=http://www.a-very-very-very-long-url-really-long.it quello che otterrete non sarà un normale documento XHTML ma bensì una semplice stringa con l’URL breve.

Quindi per convertire un URL si dovra “visitare” questo URL passando il parametro url (tramite GET, cioè il parametro farà parte dell’indirizzo tramite la classica sintassi http://www.address.com?par1=val1&par2=val2&…).

Ottenere l’URL breve

Ecco le poche righe necessarie per convertire l’URL :

function get_short_url( $longurl ) {
	$ch = curl_init( "http://tinyurl.com/api-create.php?url=$longurl" );
	curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
	$shorturl = curl_exec( $ch );
	curl_close( $ch );

	return $shorturl;
}

La funzione riceve l’URL da convertire e restituisce l’URL breve. Viene utilizzato cURL per effettuare la richiesta.

Download

Potete usare la funzione copiandola o scaricando il file PHP con la funzione. La funzione è sotto licenza GNU Affero GPL (Quindi è software libero).

Ecco un esempio pratico di come utilizzarla:

require 'tinyurl.php';

get_short_url( 'http://php.net/manual/en/function.curl-setopt.php' );

In questo caso convertirete l’URL http://php.net/manual/en/function.curl-setopt.php in uno breve.

NOTA: La funzione utilizza cURL che quindi dev’essere installato sul server, per verificare cercate la stringa “cURL support” nell’output della funzione phpinfo(). Se il server è vostro dovrete installarlo (ad esempio su Ubuntu GNU/Linux il pacchetto è php5-curl).

Acknowledgement

This knowledge comes from the OSys R&D department :P.

{lang: 'it'}


Puoi seguire le risposte a questo articolo tramite il feed RSS 2.0.
Puoi anche lasciare un commento, o creare un trackback dal tuo sito.

1 risposta a “[Pillola PHP] Convertire un URL lungo in uno breve (TinyURL)”



Lascia un commento

XHTML: Puoi usare questi tag: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*