Retrouver le lien original d'une adresse raccourcie en PHP
Après une assez longue absence d'articles techniques, en voici un nouveau en PHP. On voit lorsque je m'attelle à des projets personnels, ayant des besoins particulièrement différents de projets plus professionnels, et donc plus classiques. A titre d'information, il s'agit d'un petit client Twitter intégrant des améliorations fort sympathiques. ;)
L'article du jour vous permettra de retrouver les URL originales émanant des différents raccourcisseurs d'URL tels que L9.fr ou Goo.gl. Ce snippet nécessite l'extension PHP Curl.
function GetRedirectedLink($url)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
if(preg_match('#Location\: (.+)#', $response, $matches))
return $matches[1];
}
Le code en lui-même n'est pas très complexe. On ouvre l'URL distante grâce à Curl. On ne récupère que les headers HTTP, étant donné qu'il s'agit d'une redirection permanente (301). Dans la réponse obtenue (stockée dans $response), on recherche la ligne Location: ... où se trouve la précieuse URL recherchée.
Bon... Sur ce, je vais manger la galette des rois ! :)

Merci pour le lien ;-)
Pas très long comme bout de code, mais robuste et fort pratique. Je copie/colle et je met de côté ! :)