PHPでページのURLやパラメタを取得する方法です。PHPでWebアプリケーションを作るときには、URLやパラメタの値を取得して処理を行うことが多くなります。
$_SERVER変数
URLを取得したりする場合には、PHPの$_SERVER変数を使います。
$_SERVER変数は「スーパーグローバル 」変数と言って、すべてのスコープで使用できる組み込みの変数です。
関数・メソッドの内部で利用する場合にglobal $_SERVER;という書き方をする必要がありません。
スーパーグローバル変数は他に
$_GET,$_POST,$_FILES,$_COOKIE,$_SESSION,$_REQUEST,$_ENV
などがあります。「$_」で始まり大文字の変数であることが特徴的です。
ドメイン名を取得
「$_SERVER[“HTTP_HOST”]」はドメイン名のみを取得します。
http://www.example.com/wordpress/test.php?page=2&wpid=3というURLにアクセスしたとき
$url = "http://".$_SERVER["HTTP_HOST"]; echo $url;
このプログラムを実行すると下記の出力結果を得ることができます。
↓プログラム実行結果
「$_SERVER[“HTTP_HOST”]」には「www.example.com」しか入っていないので、URLとして表示する場合は「http://」を前につける必要があります。
パラメタを含まないドメイン以下を取得
「$_SERVER[“SCRIPT_NAME”]」はパラメタを含まないドメイン以下を取得します。
http://www.example.com/wordpress/test.php?page=2&wpid=3というURLにアクセスしたとき
「/wordpress/test.php」が取得されます。
$url = "http://".$_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]; echo $url;
このプログラムを実行すると下記の出力結果を得ることができます。
↓プログラム実行結果
パラメタを含むドメイン以下を取得
「$_SERVER[“REQUEST_URI”]」はパラメタを服務ドメイン以下を取得します。
http://www.example.com/wordpress/test.php?page=2&wpid=3というURLにアクセスしたとき
「/wordpress/test.php?page=2&wpid=3」が取得されます。
$url = "http://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]; echo $url;
このプログラムを実行すると下記の出力結果を得ることができます。
↓プログラム実行結果