- 公開日: 2017年08月22日
phpで現在のURLを取得する方法!
phpでは現在アクセスされているページのURLを取得することができます。また、その方法はいくつか用意されており、今回はその方法をサンプルソースを交え、わかりやすく解説していきます。
phpで現在のURLを取得する
現在のURL(自分のurl)を取得するにはスーパーグローバル変数にアクセスする必要があり、基本的には $_SERVER というスーパーグローバル変数にアクセスすることで値を取得することができます。
現在アクセスされているパス
$_SERVER の'REQUEST_URI'にアクセスすることで取得することができます。なお、この方法では、ホスト名は取得することができません。
echo $_SERVER['REQUEST_URI'];
結果
'/index.php'
ホスト名
$_SERVER の'HTTP_HOST'にアクセスすることで取得することができます。
echo $_SERVER['HTTP_HOST'];
結果
'localhost'
プロトコル (HTTP or HTTPS)
$_SERVER の'HTTPS'にアクセスすることで、HTTPでのアクセスかHTTPSでのアクセスなのかを判定することができます。
echo $_SERVER['HTTPS'];
結果
'on'
HTTPSでのアクセスの場合は、$_SERVER['HTTPS']の中には'on'という文字列が入っています。HTTPでのアクセスだった場合は、NULLとなります。 よって、下記のようにプロトコルの判定を行うことができます。
echo (empty($_SERVER['HTTPS']) ? 'http://' : 'https://')
結果
'https://'
現在のURLを取得する
プロトコル + ホスト名 + パス = 現在のURLとなります。下記のように実装することで、URLを取得することができます。
echo (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
結果
'http://localhost/index.php'
\Webサイト担当者としてのスキルが身に付く/
まとめ
いかがだったでしょうか。phpで現在のURL(自分のurl)を取得する方法について解説しました。URLは、プロトコル + ホスト名 + パス で構成されているので、現在のURLを取得できる関数を1つ定義しておくと便利かもしれませんね。
- この記事を書いた人
- ベンジャミン吉澤