Skip to content
2011/09/16 / Javelina

PHPで短縮URLから短縮前のURL(オリジナルURL)を取得する

メモ。
今更感が凄いですが、PHP5以上で使えるget_headersでヘッダ情報を覗けば、
短縮URLからオリジナルURL(短縮されていないURL)を取得することができます。
 

■大抵の短縮URLの場合

http://bitly.com/****** (bitlyの短縮URL)
http://tinyurl.com/******* (tinyurlの短縮URL)
http://goo.gl/***** (Googleの短縮URL)
http://youtu.be/*********** (YouTubeの短縮URL)
http://t.co/******* (Twitterの短縮URL)
http://p.tl/**** (pixivの短縮URL)

 
上記の短縮URLは、今のところすべて下記の要領でオリジナルURLを取得可能です。
 

<?php
$short_url = 'http://goo.gl/*****';//短縮URL
$headers = get_headers($short_url,1);
$original_url = $headers['Location'];//短縮前のURL
?>

 

■flickrの短縮URLの場合

flickrの短縮URL、”http://flic.kr/p/******&#8221; の場合は少しだけ異なります。↓
 

<?php
$short_url = 'http://flic.kr/p/******';//flickrの短縮URL
$headers = get_headers($short_url,1);
$original_url ='http://www.flickr.com' . $headers['location'];//短縮前のURL
?>

 
flickrの場合ドメインが入らないのと、$headers[‘location’]のl(エル)が小文字になるので注意が必要です。
 

仕様変更などがあってオリジナルURLが取得できなくなったとしても、とりあえずget_headerしてみて適宜直せばOKだと思われます。
 

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。