勉強したことのメモ

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

  関連記事

Mailtrap & PHPMailerでメールサーバ無しの環境でもメール送信テストを行う方法
Mailtrap & PHPMailerでメールサーバ無しの環境でもメール送信テストを行う方法

開発環境等メールサーバが無い環境でメール送信テストを行う際にMailtrapとい ...

PHPのOpenSSL関数で文字列の暗号・復号化を行う方法
PHPのOpenSSL関数で文字列の暗号・復号化を行う方法

だいぶ前にPHPでBlowfishアルゴリズムを用いた暗号化と復号化する方法をメ ...

CodeIgniter4でCronを実行する方法
CodeIgniter4でCronを実行する方法

CodeIgniter4.4.4で特定の処理をCronで自動実行させたい。以下に ...

CodeIgniter4で独自の404ページを表示する方法
CodeIgniter4で独自の404ページを表示する方法

CodeIgniter4にて存在しないページをブラウザから開くと、デフォルトの状 ...

時間と数字のフォーマット
時間と数字のフォーマット

教わったのでメモ。 ・時間の整形 strtotime() 例) $ymd = ' ...