Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A unified PEAR interface for creating and expanding short URL's.
branch: master

This branch is 5 commits ahead of joestump:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
Services
tests
README.textile
generatePackage.php Added missing map for Googl driver
package.xml

README.textile

Services_ShortURL

Introduction

Services_ShortURL is an abstract interface to the plethora of short/tiny/miny
URL services written in PHP5 for PEAR. It allows you to easily create or expand
short URL’s. In addition to expanding and shortening short URL’s it has helper
functions for detecting what type of short URL service a URL belongs to and
extracting short URL’s and expanding them from blogs of text.

Services

  • bit.ly
  • Digg
  • is.gd
  • short.ie
  • TinyURL
  • tr.im

Shortening a URL


<?php

$url = 'http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html';
require_once 'Services/ShortURL.php';

$api   = Services_ShortURL::factory('TinyURL');
$short = $api->shorten($url);

// I'm short!
var_dump($short);

?>

Expanding a URL


<?php

$url = 'http://tinyurl.com/jumvn';
require_once 'Services/ShortURL.php';

$api  = Services_ShortURL::factory('TinyURL');
$long = $api->expand($url);

// Should be http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html
var_dump($short);

?>

Extracting known URLs

If you have a blob of text that may or may not contain short URLs in it, you can easily extract them with the Services_ShortURL::extract() method. This method looks through the text for known short URLs, extracts them, expands them and then returns an array with a key/value pair of short/long URLs.


<?php

$txt = 'Hey check out http://tinyurl.com/jumvn and http://bit.ly/EojDf if you like politics.';
require_once 'Services/ShortURL.php';

$urls = Services_ShortURL::extract($txt);

// Will be a hash with short => long URls in it.
print_r($urls);

?>

Something went wrong with that request. Please try again.