Posted on September 24, 2009 - by webmaster
PHP Class Create Short URL via TinyURL, Is.gd, Hex.io, Tr.im & Bit.ly API
Short URL is commonly used today for several reasons: avoid url garbling, take smallest space especially for long url which need to be posted at limited space format eg: twitter, also often used to manipulate user for specific purposes eg: hiding orginal url for phising and ads/affiliation links.
There are many websites that provide shortening url services, tinyurl, bit.ly, hex.io are some of them, and as addition to my simple twitter, plurk and facebook api implementation, i have created a PHP script to create short url on the fly, currently support: tinyURL, bit.ly, is.gd, tr.im and hex.io, but you can easily add other providers.
PHP Class
<?php
/*
** Title: Shortening URL Class
** Author: chazzuka <ariel@chazzuka.com>
** Author URL: http://www.chazzuka.com
** Latest Updated: September 24 2009
*/
class ShortUrl {
public static function create($url,$provider='tinyurl',$user='',$key='') {
$api_url = sprintf(self::api($provider),urlencode($url),$user,$key);
return self::inspect($provider,self::execute($api_url));
}
private static function execute($url) {
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5);
$text = curl_exec($ch);
curl_close($ch);
return $text;
}
private static function inspect($provider,$xml) {
if(!empty($xml)) {
switch(strtolower(trim($provider))){
case "bitly":
$o = new SimpleXMLElement($xml);
return (string)$o->results->nodeKeyVal->shortUrl;
break;
case "trim":
$o = new SimpleXMLElement($xml);
return (string)$o->url;
break;
case "isgd":
case "hexio":
default:
return $xml;
}
}
return false;
}
private static function api($provider) {
switch(strtolower(trim($provider))){
case "bitly":
$return = "http://api.bit.ly/shorten?version=2.0.1&format=xml&longUrl=%s&login=%s&apiKey=%s";
break;
case "isgd":
$return = "http://is.gd/api.php?longurl=%s";
break;
case "hexio":
$return = "http://hex.io/api-create.php?url=%s";
break;
case "digg":
$return = "http://services.digg.com/url/short/create?url=%s&appkey=%s&type=xml";
break;
case "trim":
$return = "http://api.tr.im/v1/trim_url.xml?url=%s";
break;
default:
$return = "http://tinyurl.com/api-create.php?url=%s";
}
return $return;
}
}
?>
Sample of usage:
<?php $url = 'http://www.chazzuka.com/blog/?p=192'; echo ShortUrl::create($url,'trim'); echo '<hr />'; echo ShortUrl::create($url,'tinyurl'); echo '<hr />'; echo ShortUrl::create($url,'isgd'); echo '<hr />'; echo ShortUrl::create($url,'hexio'); echo '<hr />'; echo ShortUrl::create($url,'bitly','your_user_name','your_api_key'); ?>
This entry was posted on Thursday, September 24th, 2009 at 02:39 and is filed under Featured, Programming, Tutorials. You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.

















Visit My Website
September 26, 2009
Permalink
Nice PHP script, very useful and I love how you incorporated tinyur.
Visit My Website
September 29, 2009
Permalink
[...] both version shortening URL via PHP and shortening URL via Classic ASP/VBScript, it is fully OOP approach and it will be easy to add [...]
Visit My Website
November 28, 2009
Permalink
This is one thing that is being use now by most programmers to make url’s short. Good codes!
Visit My Website
December 2, 2009
Permalink
Great post! Thanks for the script, this is going to be very useful.
Visit My Website
December 4, 2009
Permalink
Really nice site, great post thanks for sharing your code!
Visit My Website
January 7, 2010
Permalink
thanks its great
and has new idea