(Dernière modification le 21 décembre 2009 à 23:58)

C’est en surfant sur le blog de Benoit Descary qu’il m’est venu l’idée de créer un script PHP permettant de créer vos propres URL compressées à la source Goo.gl.

Google ne propose pour l’instant aucun moyen de compresser une URL, outre l’utilisation de la Google Toolbar. J’ai donc crée un script PHP qui rend possible l’utilisation du service Goo.gl sans la G.Toolbar.

Pour des questions de sécurité, le script est protégé avec un reCaptcha afin d’éviter d’éventuelles attaques DoS à l’encontre du serveur PHP qui réalise une requête à l’extérieur.

Le principe est tout à fait simple, il suffit d’entrer l’URL que vous souhaitez compresser, puis de cliquer sur Goo.gliser :

Pour essayer le script rendez-vous sur la démo. L’URL http://goo.gl/e2xU pointe donc désormais vers Blogmotion.

Toujours dans la philosophie de Blogmotion, je partage les sources de ce script sous licence Creative Commons. Vous devez tout d’abord disposer d’un compte reCaptcha (gratuit), si ce n’est pas le cas rendez-vous ici.

Voici le code source :

<?php
/*
/* Auteur : Mr Xhark
/* URL : http://blogmotion.fr
/* Contact : blogmotion@gmail.com
/* Version : 1.0, rel. 20/12/2009
/* Licence : Creative Commons
/* http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Goo.gl generator</title>
<style type="text/css">
<!--
body { font-family:'Lucida Grande',Verdana,'Lucida Sans Regular','Lucida Sans Unicode','Arial','sans-serif'; }
.bloc { margin-left:auto;margin-right:auto; }
-->
</style>
</head>

<body>
<div class="bloc">
<form id="blogmotion.fr" name="blogmotion.fr" method="post" action="">
  <label>
    URL :
    <input name="url" type="text" id="url" value="<?php if ($_POST['url']) echo htmlentities($_POST['url']); ?>" style="width:258px" />
  </label>
  <?php
require_once('recaptchalib.php');
$publickey 	= 'votre_cle_publique_ici';
$privatekey = 'votre_cle_privee_ici';
echo recaptcha_get_html($publickey); ?>

  <label>
    <input type="submit" name="button" id="button" value="Goo.gliser" style="width:315px" />
  </label>
</form>
<?php
if ($_POST["recaptcha_response_field"]) {

	$resp = recaptcha_check_answer ($privatekey,
									$_SERVER["REMOTE_ADDR"],
									$_POST["recaptcha_challenge_field"],
									$_POST["recaptcha_response_field"]);

	# captcha incorrect
	if (!$resp->is_valid) {
	  die ("<strong>Le code de sécurité est invalide. Merci d'essayer à nouveau" .
		   "<br />(reCAPTCHA dit: " . $resp->error . ")</strong>");
	}

	# captcha correct
	$url = htmlentities($_POST['url'], ENT_QUOTES);
	$obj = json_decode(file_get_contents('http://ggl-shortener.appspot.com/?url=' . urlencode($url)));
	$url_goo = $obj->{'short_url'};
	echo '<br />' . $url . ' (url source)';
	echo '<br /><input type="text" value="' . $url_goo . '"/> (url compressée)';
} // POST
?>
<br  /><br  />
Script by Mr Xhark : <a href="http://blogmotion.fr" title="Blogmotion">Blogmotion.fr</a>
</div>
</body>
</html>

Attention : ce script fait appel au fichier recaptchalib.php, disponible dans votre partie membre reCaptcha.

Vous pouvez également télécharger le script complet (incluant le fichier recaptchalib.php).

C’est un script que j’ai réalisé en quelques minutes, vous pouvez bien sûr contribuer en son amélioration, je diffuserai votre code source.

Rappel : pour essayer le script cliquez ici.