Class php para utilizar o encurtador de URL Zapt.in

por Eduardo Stuart
| Mais

Para quem não conhece, o Zapt.in é mais um projeto do Manoel Lemos (@mlemos – fundador do BlogBlogs) para encurtar URLs. Para utilizar a API é preciso que você tenha uma conta no Zapt.in e utilize a chave de acesso (api key) que  é fornecida.

A class é bem simples, é possível encurtar e pegar a url original que foi cadastrada no zapt.in.

Exemplo   
<?php
//Para encurtar
$Z = new Zapt;
$shorturl = $Z->getShort("http://www.arenageek.com");
echo('url short'.$shorturl);
//Para pegar a url original
echo($Z->getExpandUrl($shorturl));
?>

Qualquer sugestão é só comentar.

zapt.in   
<?php
/*
 * class para encurtar urls utilizando o zapt.in (http://zapt.in)
 * mais info: http://zapt.in/pages/api , http://wiki.github.com/mlemos/zaptin-api/
 *
 * como utilizar
 * exemplo:
 * $Z = new Zapt;
 * $curta = $Z->getShort("http://www.arenageek.com");
 * echo('nova url: '.$curta);
 * echo('url original: '.$Z->getExpandUrl($curta));
 *
 *
 * @author: eduardo stuart
 * @date: 2010-02-07 10:32
 **/
class Zapt{
 
	private $url = array("shorten"=>"http://zapt.in/api/links/shorten", "expand"=>"http://zapt.in/api/links/expand");
	private $format  = "json";
	private $version = "1.0";
	private $apikey  = ""; //sua api key http://zapt.in/pages/api
	private $login   = ""; //seu login
 
	private $params;
 
	public function __construct(){
		if(empty($this->apikey) || empty($this->login)){
			die("API key inválida ou login não preenchido");
		}
		$this->params = "?version=".$this->version."&format=".$this->format."&login=".$this->login."&key=".$this->apikey;
	}
 
	public function getShort($strURL){
		if($strURL && $this->isValid($strURL)){
			$url = $this->url['shorten'] . $this->params  ."&longUrl=".$strURL;
			$response = $this->Processar($url);
			return ($response['errorCode']!=0) ? $response['errorMessage'] : $response['results'][$strURL]['shortUrl'];
		}else{
			return "URL Inválida";
		}
	}
 
	public function getExpandUrl($strURL){
		if($strURL && $this->isValid($strURL)){
			$url = $this->url['expand'] . $this->params  ."&shortUrl=".$strURL;
			$response = $this->Processar($url);
			if(is_array($response)){
				preg_match("/\/(([a-z0-9-]+)\/?)$/i",$strURL, $idurl);
				return ($response['errorCode']!=0) ? $response['errorMessage'] : $response['results'][end($idurl)]['longUrl'];
			}else{
				return "Erro ao processar.";
			}
		}else{
			return "URL Inválida";
		}
	}
 
	/*
	 * verifica se a url digitada é valida
	 * validacao retirada do site: http://www.htmlstaff.org/ver.php?id=4355
	 * @return bool
	 **/
	private function isValid($strURL){
		return preg_match('|^http(s)?://[a-z0-9-]+(\.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $strURL);
	}
 
    private function Processar($url) {
        $crl = curl_init($url);
        curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
        $response = curl_exec($crl);
        curl_close($crl);
 		return ($this->format == "json") ? json_decode($response,true) : $response;
    }
}
 
$Z = new Zapt;
echo 'Exemplo: '.$Z->getShort("http://www.arenageek.com");
?>

Para fazer o download , clique aqui.



Postado em: Serviços online

Deixe o seu comentário: