jQuery: creare un Tiny URL

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.

Torna su