Possiamo usare AJAX e jQuery per generare un Tiny URL senza aver bisogno di ricaricare la pagina. Quello che ci occorre è uno script lato server che, preso un URL come parametro di una richiesta GET, interroghi le API di Tiny URL per ottenere l'URL abbreviato. Vediamo i dettagli di questa soluzione.
Creiamo il seguente script PHP che gestisce il parametro u
di una richiesta GET:
header('Content-Type: text/plain');
$uri = $_GET['u'];
if(!preg_match('#https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?#', $uri)) {
echo 'URL non valido.';
exit();
}
function createTinyURL($url)
{
$tinyurl = file_get_contents('http://tinyurl.com/api-create.php?url=' . $url);
return $tinyurl;
}
echo createTinyURL($uri);
La funzione createTinyURL()
passa un URL alle API di Tiny URL e riceve come risposta l'URL abbreviato. Quindi con jQuery possiamo usare AJAX in questo modo:
$(document).ready(function() {
var uri = $('a', '#test').attr('href');
$.ajax({
type: 'GET',
url: 'tinyurl.php',
data: 'u=' + uri,
success: function(tinyurl) {
$('<a/>').
attr('href', tinyurl)
.text(tinyurl)
.appendTo('#result');
}
});
});
La proprietà data
del metodo $.ajax()
passa il parametro u
contenente l'URL allo script PHP e riceve di ritorno una stringa testuale contenente l'URL abbreviato.