Create Short URLs Using U.Nu

By  on  

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!

Recent Features

  • By
    9 Mind-Blowing WebGL Demos

    As much as developers now loathe Flash, we're still playing a bit of catch up to natively duplicate the animation capabilities that Adobe's old technology provided us.  Of course we have canvas, an awesome technology, one which I highlighted 9 mind-blowing demos.  Another technology available...

  • By
    Conquering Impostor Syndrome

    Two years ago I documented my struggles with Imposter Syndrome and the response was immense.  I received messages of support and commiseration from new web developers, veteran engineers, and even persons of all experience levels in other professions.  I've even caught myself reading the post...

Incredible Demos

  • By
    Highlighter: A MooTools Search & Highlight Plugin

    Searching within the page is a major browser functionality, but what if we could code a search box in JavaScript that would do the same thing? I set out to do that using MooTools and ended up with a pretty decent solution. The MooTools JavaScript Class The...

  • By
    MooTools ContextMenu Plugin

    ContextMenu is a highly customizable, compact context menu script written with CSS, XHTML, and the MooTools JavaScript framework. ContextMenu allows you to offer stylish, functional context menus on your website. The XHTML Menu Use a list of menu items with one link per item. The...

Discussion

  1. 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.

  2. Now if only they had analytics tracking…

  3. Alex

    “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 :(

  4. Wow! It seems the create API adds additional whitespace / carriage return though. Might want to additionally trim() the result.
    I integrated it into PHPShortener

  5. Thank you for reporting that Guillermo! Updated.

  6. @Alex : thanks, it seems to be specific to dot nu :)

  7. 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_contents may not be available to everyone? I ask simply out of curiosity :)

    Thanks again!

  8. @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

  9. Thanks for the link David, that is very helpful.

  10. awesome post.

  11. You may want to note in your post that this service no longer appears to exist.

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!