勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPにて短縮URLを展開させて、元のURLを取得する方法

  PHP

短縮されたURLを展開させて、元のURLを取得したいというケースがあった。方法を調べたところPHPにて対応できる模様。以下に対応方法をメモ。

 

対応方法

ソースコード

<?php
//短縮URL
$url = 'https://x.gd/8GHUZ';

//ヘッダを取得
$header = get_headers($url, true);

//リダイレクト先のURLが存在するかチェック
if( isset($header['Location']) ){
    $location = $header['Location'];

    //複数存在する(短縮URLを更に短縮させたような)場合は最後のリダイレクト先を取得
    if( is_array($location) ){
        $location = end($location);
    }
}else{

    //リダイレクト先が無い(短縮URLではない)場合は元のURLを設定
    $location = $url;
}
echo $location; //https://taitan916.info/blog/

 

リファレンス

get_headers

https://www.php.net/manual/ja/function.get-headers.php

end

https://www.php.net/manual/ja/function.end.php

Location

https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Location

 - PHP

  関連記事

PHPで指定月の月末日を取得
PHPで指定月の月末日を取得

今月の、だったらdate('t')でいくけど指定月の場合は どうしたらいいのか分 ...

CAPTCHAに代わる無料のツール「Cloudflare Turnstile」の導入方法
CAPTCHAに代わる無料のツール「Cloudflare Turnstile」の導入方法

CAPTCHAと言えばGoogleのreCAPTCHAを思い浮かべるが、稀にCl ...

他所のサーバからWordPressの記事情報をpostIDを指定して取得する方法
他所のサーバからWordPressの記事情報をpostIDを指定して取得する方法

他所のサーバからWPの記事IDを指定した上で、当該IDのタイトル・アイキャッチ画 ...

PHPでcURLを用いて配列のデータをJSON形式でPOST送信及び受信する方法
PHPでcURLを用いて配列のデータをJSON形式でPOST送信及び受信する方法

PHPで配列データを別サーバにJSON形式でPOST送信し、別サーバ側でもPHP ...

PHPで配列を確認する際にvar_dumpよりも見やすくなるdBug.phpの利用方法
PHPで配列を確認する際にvar_dumpよりも見やすくなるdBug.phpの利用方法

PHPで配列を確認する際、大抵var_dumpで出力させているがこれが見づらい。 ...