現在のURLを取得する方法です。
必要なのは【プロトコル】【ホスト】【パス】の3つで、それぞれを組み合わせてURLを表示させます。
##【プロトコル】 (HTTP or HTTPS)の判定
HTTPでのアクセスか、HTTPSでのアクセスなのかを判定。
echo $_SERVER['HTTPS'];
実行結果
'on'
HTTPSでのアクセスの場合は'on'
HTTPでのアクセスの場合はNULLとなります。
##アクセスされているページの【プロトコル】を取得
httpやhttpsなどのプロトコルを取得します。
HTTPSではなかったら、$_SERVERのHTTPSは空になりhttpを表示、そうではなかったらhttpsを表示。
echo (empty($_SERVER['HTTPS']) ? 'http://' : 'https://')
実行結果
'https://'
##アクセスされているページの【ホスト】を取得
ホスト名(ドメイン部分)を取得します。
echo $_SERVER['HTTP_HOST'];
実行結果
'localhost'
##アクセスされているページの【パス】を取得
httpやhttpsなどのプロトコル名やサーバーのドメイン名(ホスト名)を除いた、ページURLを取得します。
echo $_SERVER['REQUEST_URI'];
実行結果
'/index.php'
#実際に現在のURLを取得する!
上記で書いた【プロトコル】【ホスト】【パス】がの組み合わせが現在のURLになるため、下記のように書くことで、URLを取得することができます。
echo (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
実行結果
'http://localhost/index.php'
##まとめ
複数ページのSNSシェア設定部分のテンプレ化をしたくてURLの取得をしてみました。