PHPを使って現在アクセスしているページのURLを取得/表示する方法を紹介します。

PHPで現在のURLを取得する

現在のURLを取得するには、基本的に$_SERVERというスーパーグローバル変数にアクセスすることで値を取得することができます。

現在アクセスしているパス

記述例:

<?php echo $_SERVER['REQUEST_URI']; ?>

出力結果:

/index.php

$_SERVER の「REQUEST_URI」を指定すると現在アクセスしているパスを取得できます。
しかしこの方法ではホスト名は取得することができません。

ホスト名

「HTTP_HOST」を指定するとホスト名を取得できます。
記述例:

<?php echo $_SERVER['HTTP_HOST']; ?>

出力結果:

example.com

または

localhost

など

プロトコル(httpまたはhttps)

$_SERVER の「HTTPS」を指定するとHTTPまたはHTTPSどちらでのアクセスなのかを判定することができます。

記述例:

<?php echo $_SERVER['HTTPS']; ?>

出力結果:

on

HTTPSでのアクセスの場合、$_SERVER['HTTPS']を指定すると「on」という文字列が取得できます。
HTTPでのアクセスの場合は、これが「NULL」となります。

これを利用して、以下のように記述してプロトコルの判定結果を出力することができます。

記述例:

<?php echo (empty($_SERVER['HTTPS']) ? 'http://' : 'https://'); ?>

出力結果:

https://

現在アクセスしているURL

以上の情報から組み合わせて、
「プロトコル」+「ホスト名」+「パス」=現在のURL
を出力することができます。

最終的にできあがった具体的なコードは次のとおり。

記述例:

<?php echo (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>

出力結果:

https://example.com/index.php

ぜひお試しください。