Crear URLs cortas usando Bit.ly en PHP

Esta es una función creada con PHP para acortar nuestras URLs de forma automática, ten en cuenta que para usarla debes crear una cuenta en Bit.ly, así que feliz acortamiento.

Consigue tu API Key en Bit.ly.

function make_bitly_url($url,$login,$appkey,$format = 'xml',$version = '2.0.1')
{
  $bitly = 'http://api.bit.ly/shorten?version='.$version.'&longUrl='.urlencode($url).'&login='.$login.'&apiKey='.$appkey.'&format='.$format;
  
  $response = file_get_contents($bitly);
  
  if(strtolower($format) == 'json')
  {
    $json = @json_decode($response,true);
    return $json['results'][$url]['shortUrl'];
  }
  else //xml
  {
    $xml = simplexml_load_string($response);
    return 'http://bit.ly/'.$xml->results->nodeKeyVal->hash;
  }
}

¿Cómo usarlo?

$short = make_bitly_url('tu-dominio.com','tu-usuario','tu-api-key','json');
echo 'La URL corta es:  '.$short;

El resultado es: http://bit.ly/MLuPOs, la URL corta de este post.

Recomendado
  • Muchas gracias amigo funciona perfectamente, yo lo uso para generar codigos qr del enlace del anuncio cuando un cliente lo imprime, nota no funciona en el localhost tiene que ser un dominio que Bit.ly pueda verificar, excelente se agradese. saludos

    • Claro, en localhost no debe funcionar porque bitly no puede acceder a tu maquina local para transformar la url.

  • jos2

    hola amigo, como puedo generar una url diferente al de http://bit.ly/……

  • Para ello debes comprarte un dominio que tenga menos de 8 caracteres por ejemplo algo como pep.si, goo.gl, etc y configurarlo en tu cuenta de bit.ly.

  • Pau Sancgez

    Hola, el último return me da error de línia en el dreamweaver. Es decir, ésta línia me da error: return ‘http://bit.ly/’.$xml->results->nodeKeyVal->hash; ¡Como puedo arreglarla?

    • 1.- No use DreamWeaver como editor para programar es Horrible!
      2.- Excúsame por el Encode del código es este: return ‘http://bit.ly/’.$xml->results->nodeKeyVal->hash;

      Ya lo arreglé arriba.

  • Pau Sanchez

    Gracias, pero una cosa: yo tengo un dominio corto personalizado que es mkj.es y me sirve para acortar urls en bit.ly de makethejobs.com. Entonces en el ultimo return yo cambio lo de bit.ly por mkj.es. Entonces lo que me pasa es que el dominio se genera bien, es decir, la función va bien, pero el dominio que se ha creado no lleva a ningun sitio. Como lo podria solucionar? Muchas gracias por tu atención.