勉強したことのメモ

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でのファイル関係

ファイルを呼び出したり書き込んだりとかしばしば行うが、 未だに調べることが多いの ...

opauthのTwitterでログインできない際の対応方法

opauthを使ったソーシャルログインのシステムにてTwitterでログインでき ...

PHPでテンプレートPDFに動的に文字や数値を追記し出力する方法(TCPDF&FPDI)

請求書や領収書のテンプレートがあり、そちらに対して動的に文字・数値を追記し出力さ ...

PHPでHTMLメールを送信する方法(PHPMailerあり無しの2パターン)

PHPでHTMLメールを送信したい。また、メール関連の機能を実装する際は環境によ ...

CodeIgniter4でGET / POSTパラメータの受け取りとルーティング設定方法

CodeIgniter4.4.4でページを開いた際にGET / POSTパラメー ...