Actualizado 28-02-2011
Karmacracy es uno de los mejores servicios para acortar URLs, por lo menos para un servidor. Aparte de hacer su trabajo, también tiene un lado más “social”: ganar medallas, compartir los kcy (los enlaces generados), mostrarte las palabras más relevantes, etc. Muy recomendable.
Hoy os mostraré como trabajar un poco con la API haciendo que automáticamente se acorte y muestre la dirección dónde se encuentra el visitante de nuestra web usando PHP y Curl. Primero el código y después la explicación:
<?php
$thisurl=(!empty($_SERVER['HTTPS'])) ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$url="http://kcy.me/api/?u=<#user#>&key=<#keypass#>&url=$thisurl";
$ch=curl_init();
$timeout=5;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents=curl_exec($ch);
curl_close($ch);
$kcy=$file_contents;
$kcyencode=urlencode($kcy);
?>
Lo primero que hace es guardar la dirección de la página dónde se encuentra el usuario en una variable. En la siguiente línea acordaros de cambiar <#user#> y <#keypass#> por los vuestros. El keypass lo podéis encontrar en los ajustes (settings->connections). Al final codificamos la URL que nos devuelve y ya solo hace falta mostrarlo donde queramos con:
<?php echo $kcyencode; ?>
Habrá más formas (y mejores) de conseguir hacer esto, yo os muestro la que yo utilizo y serán bien recibidos los comentarios con otras formas de hacerlo.
Como os decía, hay más y mejores formas de conseguirlo, y para una muestra lo que @itortv (co-creador de @karmacracy) deja en un comentario:
<?php $kcy=implode(“”,file(“http://kcy.me/api/?u=$user&k=$keypass&url=”.urlencode($url))); ?>
Con esto solo haría falta hacer un echo para mostrar lo que guarda la variable $kcy.