mardi 24 août 2010
Les services web pour raccourcir les URL, comme TinyURL ou Bit.ly, sont constamment utilisés pour partager des liens. Du point de vue d'un programmeur, on trouve toujours le moyen de récupérer ces services utiles pour les intégrer à même nos projets web.
Le plus simple à utiliser est certainement TinyURL. Il offre un API ultra simpliste qui consiste à passer l'URL à raccourcir par la query string (GET).
À titre d'exemple, voici un snippet de code que j'ai écrit qui prouve à quel point c'est facile :
function createTinyUrl($url) {D'abord, je définis une variable qui contient l'URL de l'API et j'appelle la fonction native file_get_contents() de PHP sur ce lien en y concaténant l'URL reçu en paramètre. En effet, la fonction peut autant récupérer le contenu source généré d'une page web externe que le contenu d'un fichier local. La réponse reçue sera le code HTML de la page en question. Ici, TinyURL s'assure de ne retourner que du texte clair, donc il n'est pas nécessaire d'analyser et de traiter l'output pour retirer le code HTML. Par contre, je m'assure que ce que j'obtiens répond aux critères valides correspondant à un URL, juste au cas où (j'aurais aussi pu utiliser une regex). Enfin, si ce que je reçois est valide, je retourne l'URL écourtée, sinon je me contente de retourner l'URL original.
$api = 'http://tinyurl.com/api-create.php?url=';
$response = file_get_contents($api . $url);
$tinyUrl = filter_var($response, FILTER_VALIDATE_URL, FILTER_NULL_ON_FAILURE);
return is_null($tinyUrl) ? $url : $tinyUrl;
}
echo createTinyUrl('http://code18.blogspot.com');