Create Short URLs Using U.Nu
I was recently referred to another URL shortening website called u.nu. As far as shortening services go, u.nu seems to have the field beat as far as the shortest base URL. If you're really intent on creating the shortest possible URLs, look no further than u.nu's API.
The PHP
function get_unu_url($url)
{
$url = 'http://u.nu/unu-api-simple?url='.urlencode($url);
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$url = curl_exec($ch);
curl_close($ch);
return trim($url);
}
$short_url = get_unu_url('https://davidwalsh.name');
//returns http://u.nu/92e
That's it. I love that there's no XML or JSON involved with their API. What's returned is the URL and nothing more!
![Regular Expressions for the Rest of Us]()
Sooner or later you'll run across a regular expression. With their cryptic syntax, confusing documentation and massive learning curve, most developers settle for copying and pasting them from StackOverflow and hoping they work. But what if you could decode regular expressions and harness their power? In...
![Introducing MooTools Templated]()
One major problem with creating UI components with the MooTools JavaScript framework is that there isn't a great way of allowing customization of template and ease of node creation. As of today, there are two ways of creating:
new Element Madness
The first way to create UI-driven...
![Submit Button Enabling]()
"Enabling" you ask? Yes. We all know how to disable the submit upon form submission and the reasons for doing so, but what about re-enabling the submit button after an allotted amount of time. After all, what if the user presses the "stop"...
![dwProgressBar v2: Stepping and Events]()
dwProgressBar was a huge hit when it debuted. For those of you who didn't catch my first post, dwProgressBar is a MooTools 1.2-based progress bar which allows for as much flexibility as possible. Every piece of dwProgressBar can be controlled by CSS...
Nice snippet David ! Thanks.
But it’s strange, a domain name can have just one letter, “u” in this case ? I always think the minimum was two.
Now if only they had analytics tracking…
“Domain names can be as short as one character. A premium of €500/yr applies to name registrations of one character in length, €250 for domain names of two-character length, and €30 per year for domain names of any other length. In June, 2008, .NU Domain began permitting registration of all-numeric domain names.”
from http://en.wikipedia.org/wiki/.nu
Unfortunately all one character domains are already bought :(
Wow! It seems the create API adds additional whitespace / carriage return though. Might want to additionally trim() the result.
I integrated it into PHPShortener
Thank you for reporting that Guillermo! Updated.
@Alex : thanks, it seems to be specific to dot nu :)
Hey David,
Nice work here, I had never heard of that particular url service, thanks for that. I was going to ask though, couldn’t you shorten it down to something like this?
function get_unu_url($url) { $url = file_get_contents('http://u.nu/unu-api-simple?url='.urlencode($url)); return $url; } echo get_unu_url('http://davidwalsh.name');Or was the reason because
file_get_contentsmay not be available to everyone? I ask simply out of curiosity :)Thanks again!
@Drew Douglass: You can definitely use file_get_contents(). cURL is simply PHP best practice. Here’s a good resource:
http://stackoverflow.com/questions/555523/filegetcontents-vs-curl-what-has-better-performance
Thanks for the link David, that is very helpful.
awesome post.
You may want to note in your post that this service no longer appears to exist.