プログラムで、短縮URLサービスを使用した場合にオリジナルのURLを取得する方法を見つけました!
例えば、「You Tubeの動画のURLを入力してください」といった入力フォームを作成して用意した場合に、プログラマ側としては
http://www.youtube.com/watch?v=〇〇〇〇
の形のURLを想定していたけど、実際には、You Tube公式の短縮URL
http://youtu.be/〇〇〇〇
といったURLや、
http://bit.ly/〇〇〇〇
http://j.mp/〇〇〇〇
などのbitlyなどに代表される短縮URLサービスを使用したURLアドレスを入力されてどう対処使用かということがありました。
PHPには、こういった短縮前のURLを返却してくれる関数がありました。
「get_headers」関数を使用します。
目次
get_headers
※PHP5以上で使用可能
PHPマニュアル – get_headers
http://php.net/manual/ja/function.get-headers.php
get_headers関数を使用した記述例
<?php
$short_url = "http://j.mp/Ix9JJj";
$headers = get_headers($short_url, 1);
$original_url = $headers['Location'];
echo $original_url;
?>
こんな感じで短縮前のURLを取得することができ、実行結果は、
https://sophiadigital.com/communication/
となります。
ある程度対応する短縮URLを絞って、正規表現でURLにマッチングしたらget_headers関数で変換してあげるというような処理を書きました。
簡単に使えて便利っすね!