PHP: Short URL / Memendekan URL yang panjang dengan TinyURL

 Author : hadinug, 18 August, 2014, Komentar

URL Shortener atau pemendek URL kini tersedia di berbagai macam situs yang memberikan layanan untuk memendekkan alamat URL yang panjang menjadi lebih pendek. Contohnya alamat URL ...php-crud-pdo-dengan-url-router--simple-framework-.html bisa disingkat menjadi http://tinyurl.com/pmbobjq


Saat ini cukup banyak penyedia layanan pemendek URL (URL Shortener). Beberapa diantaranya yang cukup banyak digunakan adalah http://tinyurl.com (URL Shortener pertama), http://bit.ly, http://is.gd/ dan lain-lain. Nah pada tutorial kali ini kita akan coba memendekan URL yang panjang dengan tinyURL tanpa requirement harus mendaftarkan API, so... saya rasa ini sangat mudah. 



Library PHP

Berikut ini merupakan class atau librari PHP yang saya gunakan untuk memendekan URL via http://tinyurl.com.


class TinyUrl extends ShortUrl {

    private $url;

    public function __construct($longurl) {

        $this->validUrl($longurl);

        $this->url = urlencode($longurl);

        $apiurl = sprintf($this->api(), $this->url);

        $this->execute($apiurl);
    }

    public function execute($url) {

        $this->data = $this->get($url);
    }

    public function api() {

        return "http://tinyurl.com/api-create.php?url=%s";
    }

}

Sedangkan untuk class ShortURL nya dalah sebagai berikut:


abstract class ShortUrl {

    protected $data;

    abstract protected function api();

    abstract protected function execute($url);

    public function getTinyUrl() {

        return $this->data;
    }

    protected function get($url) {

        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, $url);

        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        $data = curl_exec($ch);

        curl_close($ch);

        if (empty($data)) {
            return 'Error retrieving data. Try again.';
        } else {
            return $data;
        }
    }

    final protected function validUrl($longurl) {

        if (!preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $longurl)) {

            throw new Exception("The url is not valid. Please try again.");
        }
    }

}

Nah class shortUrl ini merupakan abstract class yang berisi beberapa fungsi seperti CURL dan function untuk mengecek atau memvalidasi URL yang kita masukan. Class ini juga akan kita gunakan untuk membuat short URL dengan provider lain seperti bitly, isgd, unu, trim, dig dan lain-lain. 



Impementasi Penggunaan

Secara sederhana kita bisa menggunakan librari diatas dengan cara sbb:


// definisikan url yang panjang
$longUrl = "http://www.hadinug.net/post/1402650296/textbox-fokus-untuk-form-dengan-menggunakan-arah-pada-keyboard.html";
// pendekkan url yang panjang dengan tinyURL
$short = new TinyUrl($longUrl);
// tampilkan URL hasil pemendekan
echo $short->getTinyUrl();


Download atau lihat demo aplikasi nya disini. Selamat mencoba!

 
Bagikan halaman ke sosial media
 
Tags :   shortUrl       

Tentang Penulis

writer hadinug
Web Developer di PT. Yafii Solusi Internasional

Link: http://ysi.co.id

   Komentar Anda