文字数制限のあるTwitterなどにURLを張る際、短縮URLサービスは便利ですが、Webサービスで利用する際は元のURLが分かった方が便利です。
PHPで短縮URLの元のURLを確認する方法は以下から。
PHPで短縮URLを展開する方法
今回は『get_headers()関数』を用います。
PHP5から実装された関数なので、PHP4環境では使用する事ができません。
//『http://www.yahoo.co.jp/』を短縮したURL
$clipped_url = 'http://bit.ly/INPsu';
//HTTPリクエストに対するヘッダの配列を取得
$header_data = get_headers($clipped_url, true);
//Locationが含まれている場合、元URLとしてセット
if(isset($header_data['Location'])){
$original_url = $header_data['Location'];
//元URLが配列の場合、配列の最後の要素を取得
if(is_array($original_url)){
$original_url = end($original_url);
}
}else{
//元URLが取得できなかった際の処理
$original_url = '';
}
var_dump($original_url);
//出力結果は『http://www.yahoo.co.jp/』
多段階に短縮されたURL(bit.lyで短縮した後にTwitterのt.coで短縮された際など)の場合、各URLがLocationに配列として格納される為、その場合は配列の最後の要素を取得します。
![[PHP] 短縮URLを展開する方法 [PHP] 短縮URLを展開する方法](http://blog.diginnovation.com/wp-content/uploads/php_get_header-300x225.jpg)


コメント