PHPで短縮URLを展開する
http://d.hatena.ne.jp/mzp/20090508/bitly
自分で短縮URLを展開するのはもの凄く面倒。大体どこもAPIを用意してくれてはいるが、正直API叩くのも面倒。
で、そういう時に上のリンクで紹介されてるようにすればもの凄く楽に展開後のURLが取得できる。
実際にURLにアクセスして、Locationヘッダを見てる。すげーな、これ。これなら、大抵の短縮URLサービスが展開できるじゃないか。
http://d.hatena.ne.jp/mzp/20090508/bitly
種明かしするとそういうわけで、実際にAPIどころか短縮URL自体を叩けば良いというわけ。
それをphpのHTTP_Clientを使ってやってみた。
<?php require_once("HTTP/Client.php"); function detect_url($url){ $client = new HTTP_Client(); $res = $client->head($url); $response = $client->currentResponse(); return $response['url']; }
$client->head()が自分的にポイント。HTTPのGETだとメッセージボディまで返ってきて邪魔なので、HEADメソッドを使う。初めてHTTPのHEADメソッドを使った。