おはようございます、すずしんです。
現在、私はPHPのプログラミングをしているのですが…。
その際に、現在アクセスしているページのURLを取得する必要があったのでちょっと調べてみました。
今回の記事では、そのアクセスしているページのURLの取得方法について、備忘録としてまとめてみようと思います。
PHPでウェブプログラミングをしている方には需要があるかもしれませんね。
現在アクセスしているページのURLを取得する方法
PHPで現在アクセスしているページのURLを取得するには「$_SERVER」変数を使います。
この$_SERVER変数は配列になっていて、インデックスを指定することでサーバーに関する様々な情報を取得することができます。
プロトコルの取得
プロトコルを取得するには、$_SERVER変数のインデックスに「HTTPS」を指定します。
この値が設定されているかどうかで、プロトコルがhttpとhttpsのどちらであるかを判断します。
つまり、以下のようにします。
(empty($_SERVER['HTTPS']) ? 'http://' : 'https://')
例えば、「http://bloblo.jp/2015/12/15/62」にアクセスしている場合には以下のような結果が取得されます。
http://
ホスト名の取得
ホスト名を取得するには、$_SERVER変数のインデックスに「HTTP_HOST」を指定します。
つまり以下のようにします。
$_SERVER['HTTP_HOST']
例えば、「http://bloblo.jp/2015/12/15/62」にアクセスしている場合には以下のような結果が取得されます。
bloblo.jp
ページ自体の取得
ページ自体のURLを取得するには、$_SERVER変数のインデックスに「REQUEST_URI」を指定します。
つまり、以下のようにします。
$_SERVER['REQUEST_URI']
例えば、「http://bloblo.jp/2015/12/15/62」にアクセスしている場合には以下のような結果が取得されます。
/2015/12/15/62
ページの完全なURLの取得
これまでを踏まえて、現在アクセスしているページのURLを取得するには、$_SERVER[‘HTTPS’]、$_SERVER[‘HTTP_HOST’]、$_SERVER[‘REQUEST_URI’]を組み合わせれば良いということが分かります。
後は、この値を変数に入れて(例えば$url)処理してやれば良いですね。
具体的には以下のような感じです。
$url = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
まとめ
今回の記事では、現在アクセスしているページのURLを取得する方法について書いてみました。
具体的には、$_SERVER変数で得られる値を組み合わせることでURLが取得できます。
意外と簡単でしたよね?
ちなみに、単純にURLの取得だけならこれだけ知っていれば十分ですが…。
$_SERVER変数を使うと、他にもサーバーに関する様々な値を取得できます。
一度PHPのマニュアルを読んでみると良いかもしれません。
もしURLの取得方法でお困りの際には…。
ぜひこの方法を参考にして下さいね。
[参考]
・PHP: $_SERVER – Manual おすすめ!