這是個邊練功邊做出來的小玩意.
之前在 Google 上有個服務是縮短網址的, 名為 goo.gl (http://goo.gl/), 不過, 目前僅能用在像是 google maps 的 labs 服務上, 參閱: http://briian.com/?p=7105 , 或是需要安裝 Google Chrome 套件, 參閱: http://sofree.cc/goo-gl/
現在不用這麼麻煩了, 直接線上使用網頁的方式, 就能直接產生給你, 請連結: http://sample.diary.tw/goo.gl/ 或是 http://goo.gl/danL (先縮了), 就可以將需要縮短的 url 透過這個方式來縮短.
程式實作也很單純, 只是利用了一個 web request 到 goo.gl 的 api 服務, 程式碼如下:
include("HttpClient.class.php"); $u = $_GET["u"]; $client = new HttpClient("goo.gl"); $client->setHandleRedirects(false); if (!$client->post("/api/[email protected]&url=" . urlencode($u), array("a"=>"1") )) { die('An error occurred: '.$client->getError()); } echo $client->getHeader("Location");
利用了 HttpClient 的 php class, (參閱: http://scripts.incutio.com/httpclient/ ), 並 post 資料到 http://goo.gl/api/[email protected]&url=[url], 取回 Location header 即可.
若有需要直接取用的網友, 可以訪問 http://sample.diary.tw/goo.gl/u.php?u=[url] 就可以取得了. 例如: http://sample.diary.tw/goo.gl/u.php?u=https://diary.tw/tim
免安裝, 免外掛, 直接線上使用 goo.gl 的 google shortener url 縮網址服務
http://sample.diary.tw/goo.gl/
[2010/7/23 13:40]
剛發現, goo.gl 的 api, 可以不用帶前面的 [email protected] 參數, 所以整個就只要如下的 url 即可:
... if (!$client->post("/api/url?url=" . urlencode($u), array("a"=>"1") )) { die('An error occurred: '.$client->getError()); } ...