この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
目次
ユーザーが接続中のページのURLを取得する
PHPでユーザーがアクセスしているページのURLを取得する方法を説明していきます。
PHPが提供するSERVER変数を使って、「URL全て」や「ホスト名」、「URI」、クエリ文字などの取得方法を記述します。自身の用途に応じて必要なものをご使用してください。
URLやパラメータなどの取得方法
まずは一番用途の多いURLの取得方法を記述して、そのあとにスクリプト名、クエリなどの個別の取得方法をご紹介します。
なお今回の出力例は
https://www.t3a.jp/test.php?param1=1¶m2=2
にアクセスしたときの挙動として表示しています。
URLの取得方法
PHPにてURL全体を取得する方法を記載します。
(isset($_SERVER[‘HTTPS’]) && $_SERVER[‘HTTPS’] === ‘on’ ? ‘https://’ : ‘http://’) . $_SERVER[‘HTTP_HOST’] . $_SERVER[‘REQUEST_URI’]
各情報(スクリプト名やクエリ)の取得方法
URLを構成する各情報(スクリプト名やクエリなど)の取得方法を記載します。
| 説明 | 命令 | 出力例 |
|---|---|---|
| SSL | $_SERVER[‘HTTPS’] | on |
| ホスト名 | $_SERVER[‘HTTP_HOST’] | www.t3a.jp |
| ページ名 | $_SERVER[‘REQUEST_URI’] | /test.php?param=1¶m2=2 |
| スクリプト名 | $_SERVER[‘SCRIPT_NAME’] | /test.php |
| クエリ(パラメータ) | $_GET | array(2) { [“param”]=> string(1) “1” [“param2”]=> string(1) “2” } |
サンプルプログラム
<?php echo '〇URL' . PHP_EOL; var_dump((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); echo PHP_EOL; echo '〇SSL' . PHP_EOL; var_dump($_SERVER['HTTPS']); echo PHP_EOL; echo '〇ホスト名' . PHP_EOL; var_dump($_SERVER['HTTP_HOST']); echo PHP_EOL; echo '〇URI' . PHP_EOL; var_dump($_SERVER['REQUEST_URI']); echo PHP_EOL; echo '〇スクリプト名' . PHP_EOL; var_dump($_SERVER['SCRIPT_NAME']); echo PHP_EOL; echo '〇パラメータ' . PHP_EOL; var_dump($_GET); echo PHP_EOL;
サンプルプログラムの出力結果
〇URL
string(44) "https://www.t3a.jp/test.php?param=1¶m2=2"
〇SSL
string(2) "on"
〇ホスト名
string(10) "www.t3a.jp"
〇URI
string(26) "/test.php?param=1¶m2=2"
〇スクリプト名
string(9) "/test.php"
〇パラメータ
array(2) {
["param"]=>
string(1) "1"
["param2"]=>
string(1) "2"
}
ウェブプログラミングについては下記の本も参考になるので、スキルアップにお役立てください。

