<? class googl { const api = 'https://www.googleapis.com/urlshortener/v1/url'; private $key = null; public function __construct($key = null) { if(defined('GOOGLE_API_KEY')) { $this->setKey(GOOGLE_API_KEY); } if(!is_null($key)) { $this->setKey($key); } } public function setKey($key) { $this->key = $key; } public function s($url) { $data = $this->shorten($url); return isset($data->id) ? $data->id : $url; } public function shorten($url) { $key = ''; $data = array(); $data['longUrl'] = $url; if(!is_null($this->key)) { $key = '?key='.$this->key; } return $this->fetch(self::api.$key,$data); } public function expand($url) { $key = is_null($this->key) ? '' : "&key={$this->key}"; return $this->fetch(self::api.'?shortUrl='.urlencode($url)."$key&projection=FULL"); } private function fetch($url, $data = array()) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json')); if(!empty($data)) { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); } $r = curl_exec($ch); curl_close($ch); return json_decode($r); } } ?>
Jul 19, 2011
PHP goo.gl url shortener
Here's an implementation of Google's url shortener: goo.gl.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment