勉強したことのメモ

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

  関連記事

CodeIgniter4&Bootstrap&jQueryで簡易版お問い合わせページの作成

CodeIgniter4.4.4&Bootstrap&jQuer ...

CodeIgniter4.4.4のインストールからHello Worldページ表示まで行う方法

以前CodeIgniter3を勉強したことがあったが新バージョンの4系がリリース ...

PHPのセッションでログイン、ログアウトの管理。あとセッションが保存されない場合の対処。

セッションはほとんど使ったことがなく、 色々つまづいたのでメモ。 やりたかった事 ...

phpdotenvライブラリを使用してPHPで.envファイルを読み込ませる方法

CodeIgniterを勉強していた際に各種設定は「.env」というファイルに記 ...

CodeIgniter4の各種設定項目のまとめ記事

CodeIgniter4.4.4の各種設定項目を後から確認できるようまとめておき ...