文字数制限のある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に配列として格納される為、その場合は配列の最後の要素を取得します。
コメント