Skip to main content

Bitly URL Shorten using Bitly API and PHP

Bitly is one of the most powerful and popular URL shorten and bookmark service in the universe. Bitly offers simple and powerful API to generate short URL from long one. To use this API you have to signup for an API key. Bitly offers it free for it's all users. If you want, you can get it from Bitly's home page. Here's an example to create a short URL using PHP.




The Bitly Class:
class Bitly
{
	var $apiURL = 'http://api.bit.ly/v3/';
	var $apiQuery = '';

	/**
	 * @param str $login as Bitly login
	 * @param str $apiKey as Bitly API Key
	 */
	function __construct($login, $apiKey)
	{
		$this->apiQuery = 'login=' . $login;
		$this->apiQuery .= '&apiKey=' . $apiKey;
		$this->apiQuery .= '&format=json';
	}

	/**
	 * Short Long URL
	 * @param string URL
	 * @return string || void
	 */
	function shorten($uri)
	{
		$this->apiQuery .= '&uri=' . urlencode($uri);
		$query = $this->apiURL . 'shorten?' . $this->apiQuery;
		$data = $this->curl($query);
		$json = json_decode($data);
		return isset($json->data->url) ? $json->data->url : '';
	}

	/**
	 * Expend Short URL
	 * @param str URL
	 * @return str || void
	 */
	function expend($uri)
	{
		$this->apiQuery .= '&shortUrl='.urlencode($uri);
		$query = $this->apiURL . 'expand?' . $this->apiQuery;
		$data = $this->curl($query);
		$json = json_decode($data);
		return isset($json->data->expand[0]->long_url) ? $json->data->expand[0]->long_url : '';
	}

	/**
	 * Send CURL Request
	 * @param string URL
	 * @return string
	 */
	function curl($url)
	{
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		$data = curl_exec($ch);
		curl_close($ch);
		return $data;
	}
}

Usage:
# Include main bitly class
include 'bitly.php';
# Bitly User Login
$login = 'my-bitly-login';
# Bitly API key
$api = 'my-bitly-api-key';

$bitly = new Bitly($login, $api);
# Shorten Long URL
$bitly->shorten('http://www.w3bees.com');
# Expend Short URL
$bitly->expend('http://bit.ly/15MCr0p');

Enjoy it! Thanks!

Comments

  1. Works great! Thanks!

    ReplyDelete
  2. Replies
    1. sorry,...
      just using
      <?php echo $bitly->shorten('http://ahmad.najiullah.com'); ?>
      thanks b4

      ^_^

      Delete
  3. Did you know you can shorten your long links with AdFly and make dollars for every visit to your shortened urls.

    ReplyDelete

Post a Comment

Popular posts from this blog

Multiple File Upload with Progress Bar using PHP & jQuery

Some days age I have created a post that deals with How we can upload file with progress bar using php and jQuery. Some of my readers asked me how we can upload multiple files with progress bar. In this post I am going to show you how we can upload multiple files with progress bar.We can upload multiple files with progress bar exactly same way as I shown previous. But we need to do some modification with our file upload form and our php script to handle multiple files.

Force File Download with PHP

If you want to control or track your downloadable contents then a force file downloader script can give you more option. Especially if you want make images or other stemming contents like music file (mp3, wav, ogg), video files (flv, mp4, ogg, 3gpp), css, JavaScripts or even a php file downloadable then you must need to use a force file downloader script.
In this post I am going to share a simple but useful force file downloader script.

File Upload with Progress Bar using jQuery and PHP

In this post you will learn how to create a AJAX file uploading system with progress bar using jQuery and PHP. For this purpose we will going to use jQuery Form Plugin. It is a easy to use and powerful jQuery AJAX form submitting plugin. It supports XMLHttpRequest Level 2 and iframe file transportation. That's why it will work for both old and new browsers.