Overview

Packages

  • Service
    • UrlShortener

Classes

  • Horde_Service_UrlShortener_Base
  • Horde_Service_UrlShortener_Exception
  • Horde_Service_UrlShortener_TinyUrl
  • Overview
  • Package
  • Class
  • Tree
 1: <?php
 2: /**
 3:  * This file contains the Horde_Service_UrlShortener class for shortening URLs
 4:  * using the TinyUrl service.
 5:  *
 6:  * Copyright 2011-2012 Horde LLC (http://www.horde.org/)
 7:  *
 8:  * See the enclosed file COPYING for license information (LGPL). If you
 9:  * did not receive this file, see http://www.horde.org/licenses/lgpl21.
10:  *
11:  * @author   Michael J Rubinsky <mrubinsk@horde.org>
12:  * @license  http://www.horde.org/licenses/lgpl21 LGPL 2.1
13:  * @category Horde
14:  * @package  Service_UrlShortener
15:  */
16: 
17: /**
18:  * UrlShortener class for TinyUrl.
19:  *
20:  * @author   Michael J Rubinsky <mrubinsk@horde.org>
21:  * @category Horde
22:  * @package  Service_UrlShortener
23:  */
24: class Horde_Service_UrlShortener_TinyUrl extends Horde_Service_UrlShortener_Base
25: {
26:     const API_URL = 'http://tinyurl.com/api-create.php';
27: 
28:     /**
29:      *
30:      * @param  string $url The URL to shorten
31:      *
32:      * @return string  The shortened URL
33:      * @throws Horde_UrlShorten_Exception
34:      */
35:     public function shorten($url)
36:     {
37:         $u = new Horde_Url(self::API_URL);
38:         $u = $u->setRaw(true)->add('url', $url);
39:         try {
40:             $response = $this->_http->get($u);
41:         } catch (Horde_Http_Exception $e) {
42:             throw new Horde_Service_UrlShortener_Exception($e);
43:         }
44: 
45:         return $response->getBody();
46:     }
47: 
48: }
API documentation generated by ApiGen