Scurt/2 Shortcut

Cu ceva timp în urmă am avut nevoie să postez automat link-uri în cirip.ro folosind API-ul pus la dispoziţie de ei. Problema de care m-am lovit a fost că cirip.ro nu scurtează automat url-urile pe care le scrii în mesajul tău (sau cel puţin nu mi-am dat eu seama cum)

Ca atare, ştiind că există deja sp2.ro, un serviciu românesc gratuit care se ocupă cu transformarea unui url lung într-unul scurt, am scris o bucată simplă de cod care să se folosească de serviciul amintit si să genereze automat link-urile scurtate.

Mai jos ai să găseşti şi o arhivă care conţine codul şi un exemplu de utilizare. Simte-te liber să modifici cum doreşti codul, cu condiţia să respecţi licenţa impusă (Creative Commons Attribution-Share Alike 3.0)

< ?php
/**
 * sp2.ro Shortcut
 *
 * Author: Liviu Hariton <mailto:me@punctweb.com>
 * Version: 0.1
 * Started: 17 Jul 2009 11:37
 *
 * Released under the terms of Creative Commons Attribution-Share Alike 3.0 licence
 * http://creativecommons.org/licenses/by-sa/3.0/
 */

class Sp2 {
	public $link;

	/**
	 * The service root URL
	 */
	const SP2_HOME = 'http://sp2.ro/';

	/**
	 * Regular expression to match the result
	 */
	const SP2_REGEXP = '`<a href=".+status=(.*)" target="_blank">da-l pe twitter!</a>`isUm';

	/**
	 * Connect to service and fetch the response
	 * @return string
	 */
	private function connect() {
		$curl_handle = curl_init();

        curl_setopt($curl_handle, CURLOPT_URL, self::SP2_HOME);
        curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
        curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl_handle, CURLOPT_POST, 1);
        curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "url=".$this->link."&submit=Fa-l SCURT!");

		$source_output = curl_exec($curl_handle);

		curl_close($curl_handle);

		return $source_output;
	}

	/**
	 * Get the response from the serice and pass on
	 * @return string
	 */
	private function getSourceOutput() {
		return $this->connect();
	}

	/**
	 * Parse the service response and extract the final result
	 * @return string
	 */
	public function getShortUrl() {
		preg_match_all(self::SP2_REGEXP, $this->getSourceOutput(), $result, PREG_PATTERN_ORDER);

        return $result[1][0];
	}
}

Codul sursă complet

Articole similare
    Nimic asemanator

camere foto digitale

2 comentarii

  1. Ionut a zis:

    daca am inteles despre ce e vorba, desi nu-s un priceput in ale internetului, de ce nu incerci http://tinyurl.com/ ?

Comentează

Toate drepturile rezervate © Liviu Hariton

Tema Notes Blog Core
Găzduire (nu moca): Top Level Hosting