A quoi ça sert ? a priori, les 2 raisons sont : la réduction du nombre de caractère (cf tweet) et le fait de masquer l'url réelle lorsque l'on affiche un lien.
Class PHP TinyUrl
La class TinyurlRevealer décode un lien TinyUrl pour afficher l'adresse réel. Une requête HEAD est envoyée au serveur pour connaitre l'url de redirection.<?php
/**
* Découvrir l'URL derrière un lien TinyUrl
*/
class TinyurlRevealer {
public static function decode($url) {
$urls = parse_url($url);
$param = $urls['path'];
$fp = fsockopen("tinyurl.com", 80);
if (!$fp) {
return "";
} else {
$buf = "";
fputs($fp, "HEAD " . $param . " HTTP/1.0\r\nHost: tinyurl.com\r\n\r\n");
while (!feof($fp)) {
$buf.= fgets($fp, 128);
}
fclose($fp);
//Cherche la redirection vers l'URL réel
$lines = explode("n", $buf);
foreach ($lines as $line) {
if (strpos($line, 'Location') !== false) {
return substr($line, 10);
}
}
return '';
}
}
}
?>
Décoder une URL raccourcie
Quelle URL se cache derrière http://tinyurl.com/3xf5cypPour connaitre l'adresse du site, il faudrait cliquer sur l'url pour ensuite voir l'url d'origine dans le navigateur internet. Le bout de code permet d'extraire directement l'adresse source sans passer par le navigateur. L'astuce consiste à repérer la redirection 301 puis d'extraire la nouvelle URL indiquée dans le paramètre location.
<php
/**
* Exemple
*/
echo TinyurlRevealer::decode('http://tinyurl.com/3xf5cyp');
//Resultat: http://www.fobec.com
?>
Depuis de nombreux services ont été lancés que l'on retrouve notamment sur Twitter. La manière de décoder une url raccourci marche également pour découvrir l'adresse internet d'origine sans passer par le navigateur.