PHPで表示中のURL情報を取得する:$_SERVER

PHPで現在表示しているページのアドレスを取得する方法について説明します。

URLを$_SERVER変数から取得する

表示中のURLの情報は$_SERVERに格納され、$_SERVERを参照することで様々な情報を取得できることができます。

対象ページが http://uxmilk.jp/14769 の場合、以下のようになります。

アクセスしているページを取得

現在アクセスしているページを表示します。

プロトコルがhttpかhttpsであるかの判定

httpかhttpsを判定し、表示します。

サーバーのホスト名を取得

リクエストのHost:ヘッダの内容(ドメイン名)を表示します。

表示しているページの完全なURLを表示

現在、表示しているページのURLを全て表示するサンプルです。

以下は、三項演算子を使い1行のコードにしたサンプルコードです。

わかりやすくif文を使った形にすると以下のようになります。

上記のサンプルでは、URLにポート番号は含んでいないので、ポートを含む場合は$_SERVER["SERVER_PORT"]を利用してください。

$_SERVER['HTTP_HOST']と$_SERVER['SERVER_NAME']の違い

また、$_SERVER変数には、「HTTP_HOST」とよく似た連想配列「SERVER_NAME」があります。これは表示する元となる情報が異なります。

$_SERVER['HTTP_HOST']は、リクエストヘッダーのHost:の内容が保存されています。一方で、$_SERVER['SERVER_NAME']は、apacheやnginxなどで設定されているServerNameとなります。


Welcome to UX MILK

UX MILKはより良いサービスやプロダクトを作りたい人のためのメディアです。

このサイトについて