گوگل یکی از بزرگترین شرکت های فعال در تمامی زمینه ها (خواستم بگم IT دیدم حتی تو خریدن گاو و گوسفند هم داره فعالیت می کنه :D) ست که توجه ویژه ای به کابرانش داره و باز توجه ویژه تری به کاربرانی که در زمینه وب فعالیت می کنن. ابزار های بسیار زیادی رو به صورت رایگان در اختیار برنامه نویس ها قرار می ده که خیلی از کارها رو برای ما راحت تر و مطمئن تر می کنه. یکی از این ابزارها کوتاه کننده ی url هستش که با نام goo.gl در اختیار کاربران قرار گرفته. تقریبن اکثر مرورگر ها بیش از ۲۰۰۰ کاراکتر رو نمایش نمی دن( بقیه اش رو حذف می کنن). البته در مرورگرهای مختلف متفاوته. مثلن در جایی می خوندم که فایرفاکس تا ۸۰هزار کاراکتر رو پشتیبانی می کنه. درواقع پروتکل http هیچ محدودیتی برای urlها نمی ذاره بلکه این مرورگر ها هستند که باید این امکان رو در خودشون جاسازی کنند.
حالا اگه تعداد کارکتر های یه نشانی بیشتر از این حرفا شد چی کار باید کرد؟ گوگل برای شما یه ابزار گذاشته که به راحتی می تونید ازش استفاده کنید و یه نشانی چند کاراکتری بگیرید.
شروع کار:
برای این کار ابتدا باید در سایت گوگل API مورد نظرتون رو فعال کنید. برای این منظور می تونید به این آدرس برید و از سرویس هایی که می بینید URL Shortener API رو فعال کنید.
گوگل به شما آدرسی به این شکل خواهد داد:
https://www.googleapis.com/urlshortener/v1/url?shortUrl=http://goo.gl/------&key=1234567890qwertyuiopahjklzxcvbnm
و مقدار key برای شما برابره با :
۱۲۳۴۵۶۷۸۹۰qwertyuiopahjklzxcvbnm
حالا این کلاس رو داشته باشید:
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); } }
برای استفاده از این کلاس به این صورت عمل کنید:
$key = 'xhjkhzkhfuh38934hfsdajkjaf'; $googer = new GoogleURLAPI($key); $shortDWName = $googer->shorten("http://phpdevelopers.ir"); echo $shortDWName;
خروجی این بخش به این صورت خواهد بود:
http://goo.gl/aIVcs
عکس این عمل رو هم می تونید انجام بدید. یعنی نشانی کوتاه رو بگیرید و آدرس اصلی رو بدید. به این صورت:
$longDWName = $googer->expand(http://goo.gl/aIVcs); echo $longDWName; // returns http://phpdevelopers.ir/
ساده بود نه؟
به خاطر همین چیزاست که گوگل رو دوست دارم.
نکته ای که باید دقت کنید اینه که برای تست لوکال curl حتمن باید فعال باشه. برای نصب کردن در لینوکس می تونید از این دستور استفاده کنید:
sudo apt-get install php5-curl
تو ویندوز هم فکر می کنم باید در فایل php.ini بخش extension=php_curl.dll رو از کامنت خارج کنید (یعنی ; رو از اول خط حذف کنید)
امیدوارم به دردتون خورده باشه
موفق باشید
مرسی دوست عزیز امید وارم روز به روز بیشتر بشه
عالی بود