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.
forte questa cosa!!
bitcoin future value Predictions 2018
[Pillola PHP] Convertire un URL lungo in uno breve (TinyURL) // xoen-