Jonathan Petitcolas

Geek et passionné de high-tech…

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 ! :)

Mots-clefs : , ,

2 réactions sur cet article.

  1. ChoiZ dit :

    Merci pour le lien ;-)

  2. sirlepape dit :

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

Réagissez sur cet article !