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.
Auteur : Mr Xhark
Fondateur du blog et passionné par les technologies je partage mes découvertes quotidiennement.









Déjà 17 commentaires
Twitter: InformatHic
dit :
21 décembre 2009 à 7h37
Pas mal du tout mais il y a des p’tits soucis dans ton script.
Il n’arrive pas à gérer les adresses avec des accents.
Quand je donne l’adresse : http://www.informathic.com/post/2009/12/09/Free-annonce-que-le-piratage-nuit-à-la-création-artistique , j’obtient l’adresse suivante : http://goo.gl/4BIN qui bien sûr ne mène pas au bon endroit à cause des accents qui ont étés transformés par la fonction htmlentities(). A la place je te conseille d’utiliser htmlspeciachars() avec comme second argument la constante ENT_QUOTES.
J’ai donc amélioré le script à cette adresse : http://pastebin.com/f7f0c81ac
21 décembre 2009 à 14h09
@Francis : oui, je m’en suis également rendu compte après publication. Je modifie ça ce soir. Merci
Twitter: nelshd
dit :
21 décembre 2009 à 15h42
Excellent ce script !
Merci ! Je vais tester ce dernier asap !
21 décembre 2009 à 20h50
@Francis: Voilà c’est corrigé! Mais les urls avec accent sont à éviter de manière générale
Twitter: InformatHic
dit :
21 décembre 2009 à 22h50
@Mr Xhark: Ce n’est toujours pas bon.
Regarde bien les différences sur le script que j’ai mit sur Pastebin dans mon premier commentaire.
22 décembre 2009 à 21h02
[...] Un script PHP pour générer vos url Goo.gl facilement Abonnez-vous à ces revues par ou par Découvrez les anciennes revues [...]
Twitter: latelament
dit :
23 décembre 2009 à 0h50
@Francis: $url n’est pas défini à la ligne :
$obj = json_decode(file_get_contents(‘http://ggl-shortener.appspot.com/?url=’ . urlencode($url)));
ce qui provoque une erreur
Twitter: InformatHic
dit :
23 décembre 2009 à 10h21
@LateLament : Content de te voir ici
En effet petite boulette de ma part.
Dans ce cas il faut faire ainsi :
$obj = json_decode(file_get_contents(‘http://ggl-shortener.appspot.com/?url=’ . urlencode($_POST['url'])));
Mise à jour du script : http://pastebin.com/f5ccb6fbf
23 décembre 2009 à 10h26
@Francis : j’avais également repéré l’erreur, mais pas eu le temps de rechercher si tu avais déjà déclaré $url ailleurs (je pensais que tu l’avais testé).
Quand à mon script je l’ai testé et il fonctionne avec ton URL qui comporte des accents
Twitter: antoineb
dit :
25 décembre 2009 à 2h26
pas mal comme truc
par contre je me demande comment le mec a fait pour créer son api : http://ggl-shortener.appspot.com/instructions/
parce que rien n’a été publié par Google…
sinon les url avec accent, ca va etre commun dans quelques mois/année avec les IDN ouvert depuis 2 mois
Twitter: latelament
dit :
25 décembre 2009 à 14h49
Probablement en observant le comportement de la toolbar
« http://goo.gl/api/url?user=toolbar@google.com&url= » + urlEscaped + « &auth_token= » + auth_token, false
26 décembre 2009 à 13h31
[...] Benoit Descary a par exemple installé un bookmarklet ou l’ami Mr Xhark a quant à lui généré un script PHP. Avouez qu’une petite extension reste le choix le plus adapté à tous les novices (dont je [...]
Twitter: CedricADW
dit :
28 décembre 2009 à 14h01
Je sais que la question va paraître hors sujet mais quelle police d’écriture as-tu utilisé pour la première image de ton article ?
Promis, après ça je me jette sous un train !
28 décembre 2009 à 14h32
@CedricADW : je ne vais malheureusement pas pouvoir te répondre car je balancer mes PSD à la poubelle aussitôt qu’un billet est publié. Avec un peu de chances cette police est encore la dernière sélectionnée dans mon photoshop… mais je ne suis pas sur le bon PC là
10 janvier 2010 à 0h18
[...] vous avoir présenté un script PHP pour compresser une URL avec le service goo.gl (de Google), voici une seconde solution, accessible [...]
18 septembre 2010 à 5h56
franchement merci, j’ai longtemps chercher, et enfin je suis tomber sur ton blog, tu me sauves la vie l’ami, merci encore
Twitter: gta5tv
dit :
15 novembre 2010 à 0h57
Merci pour ce script bien utile et pratique!