Programming Web with PHP, CSS, Javascript and ∞
Creating Small Urls with PHP
Have you ever wanted to create small URLs like in Twitter? This service is provided by bit.ly and it is the one I normally use for my projects. It allows you to shorten any long URL (ie. http://www.ramirezcobos.com = http://bit.ly/8zivPq -click on it and you will be redirected here) and also gives you click statistiques.
Nevertheless, there are also other providers that allows you to create a small URL on the fly such as tinyurl.com or to.y. If any of you wishes to create small urls through their PHP code here I got a set of functions (using CURL) for you use on your projects:
function getTinyUrl($url){
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,'http://tinyurl.com/api-create.php?url='.$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
function getToLyUrl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://to.ly/api.php?longurl='.urlencode($url));
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec ($ch);
curl_close ($ch);
return $data;
}
Usage
$smallURL = getTinyUrl('http://www.ramirezcobos.com');
echo $smallURL; // will display the small URL
Extras
I include the following function too just in case, as I recommend you to check if URLs are in correct format before using the above functions.
function getParsedUrl($url)
{
$parsed_url = parse_url($url);
if (!isset($parsed_url['scheme']) or $parsed_url['scheme'] != 'http'){
echo 'Unsupported URL sheme given, please just use "HTTP".';
exit();
}
if (!isset($parsed_url['host']) or $parsed_url['host'] == ''){
echo 'Invalid URL given!';
exit();
}
$host = $parsed_url['host'];
$host .= (isset($parsed_url['port']) and !empty($parsed_url['port'])) ? ':'.$parsed_url['port'] : '';
$path = (isset($parsed_url['path']) and !empty($parsed_url['path'])) ? $parsed_url['path'] : '/';
$path .= (isset($parsed_url['query']) and !empty($parsed_url['query'])) ? '?'.$parsed_url['query'] : '';
return 'http://' . $host . $path;
}
| Print article | This entry was posted by Antonio Ramirez on December 16, 2009 at 4:23 am, and is filed under On The Web, PHP, Tools. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |







I'm a 38 year old Web Developer working from Ibiza, Balearic Islands, Spain. I am Founder and Lead Developer for