Google URL Shortener PHP Class
페이지 정보
작성자 서방님 댓글 0건 조회 1,044회 작성일 16-01-22 13:10본문
출처 : https://davidwalsh.name/google-url
Google has had a URL shortening domain for quite a while now but it wasn't until recently that Google exposed the URL shortening API to the public. I took a few minutes to review their API and created a very basic GoogleUrlApi
class that will shorten long URLs and expand shortened URLs.
The PHP
The class itself is quite compact and the code should be easy to read:
// Declare the class class GoogleUrlApi { // Constructor function GoogleURLAPI($key,$apiURL = 'https://www.googleapis.com/urlshortener/v1/url') { // Keep the API Url $this->apiURL = $apiURL.'?key='.$key; } // Shorten a URL function shorten($url) { // Send information along $response = $this->send($url); // Return the result return isset($response['id']) ? $response['id'] : false; } // Expand a URL function expand($url) { // Send information along $response = $this->send($url,false); // Return the result return isset($response['longUrl']) ? $response['longUrl'] : false; } // Send information to Google function send($url,$shorten = true) { // Create cURL $ch = curl_init(); // If we're shortening a URL... if($shorten) { curl_setopt($ch,CURLOPT_URL,$this->apiURL); curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode(array("longUrl"=>$url))); curl_setopt($ch,CURLOPT_HTTPHEADER,array("Content-Type: application/json")); } else { curl_setopt($ch,CURLOPT_URL,$this->apiURL.'&shortUrl='.$url); } curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); // Execute the post $result = curl_exec($ch); // Close the connection curl_close($ch); // Return the result return json_decode($result,true); } }
The constructor requires your Google API key. A second argument may be provided to the URL of the Google API. As the API is currently in version 1, changing this URL would be more harmful than useful. The class features two main methods: shorten and expand. Each method takes the long or short URL, contacts Google, and returns its counterpart. If no counterpart is found, or the Google URL Shortener API is down, a result of false is returned, so please be sure to use your own error handling.
Now let's create an instance of GoogleUrlApi
to shorten and then expand a URL:
// Create instance with key $key = 'xhjkhzkhfuh38934hfsdajkjaf'; $googer = new GoogleURLAPI($key); // Test: Shorten a URL $shortDWName = $googer->shorten("http://davidwalsh.name"); echo $shortDWName; // returns http://goo.gl/i002 // Test: Expand a URL $longDWName = $googer->expand($shortDWName); echo $longDWName; // returns http://davidwalsh.name
The shorten()
and expand()
methods return their counterparts, as expected. Quite painless, no?
The Google URL Shortener API provides much more than what my class provides, including user URL listing and usage tracking. My class provides only the basics; I'm assuming that 90%+ care only about getting the URL shortened so I've catered to that audience. I had also thought about adding a caching mechanism to the class but since most everyone has their own method of caching information, I thought it best to leave that out. Hopefully this class has some use for you all!
댓글목록
등록된 댓글이 없습니다.