lilurlにGETメソッドで短縮URLを発行するインターフェースを追加するパッチ
lilurl とは TinyURLのオープンソース版クローンです。
- lilURL - A Free/Open Source Clone of TinyURL http://lilurl.sourceforge.net/
イントラネット用に短縮URLサービスlilurlを活用するため、ブックマークレットを作ろうと考えたけど、FORMからPOSTしないと短縮URLを発行してくれない作りになってたり、レスポンスもHTMLをスクレーピングするのがめんどかったのでlilurl側を変更してみた。
コメントに'RESTful interface'なんて言葉使っているけど、RESTfulがなんなのかよくわかってない。
RESTfulの使い方間違っているかも。
$ diff index.php index.php.orig 10c10 < if ( isset($_POST['longurl']) || isset($_GET['longurl']) ) --- > if ( isset($_POST['longurl']) ) 12,20d11 < if (isset($_POST['longurl'])) { < $method = 'POST'; < $longurl = $_POST['longurl']; < } < else < { < $method = 'GET'; < $longurl = $_GET['longurl']; < } 22c13 < $longurl = trim(mysql_escape_string($longurl)); --- > $longurl = trim(mysql_escape_string($_POST['longurl'])); 67,73d57 < < // for RESTful interface < if ($method == 'GET') { < header('Content-Type: Text/Plain'); < echo($url); < exit; < }
修正した>> lilurlパッチとブックマークレット修正(クロスドメイン対応) - 今日もスミマセン。を参照
こうしておけば、"http://lilurl_server/index.php?longurl=http://hoge/fuga/"という感じでリクエストを投げると、短縮URLをプレーンテキストで取得できる。
エラーステータスとかは考慮してない。超簡易的なハック。
こうしておけば、イントラネット用のブックマークレットとかが作りやすくなる。