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
ぜひお試しください。