[PHP]現在アクセスしているページのURLやパラメータを取得する

php_program_top

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

ユーザーが接続中のページのURLを取得する

PHPでユーザーがアクセスしているページのURLを取得する方法を説明していきます。

PHPが提供するSERVER変数を使って、「URL全て」や「ホスト名」、「URI」、クエリ文字などの取得方法を記述します。自身の用途に応じて必要なものをご使用してください。

 

URLやパラメータなどの取得方法

まずは一番用途の多いURLの取得方法を記述して、そのあとにスクリプト名、クエリなどの個別の取得方法をご紹介します。

なお今回の出力例は

https://www.t3a.jp/test.php?param1=1&param2=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&param2=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&param2=2"

〇SSL
string(2) "on"

〇ホスト名
string(10) "www.t3a.jp"

〇URI
string(26) "/test.php?param=1&param2=2"

〇スクリプト名
string(9) "/test.php"

〇パラメータ
array(2) {
  ["param"]=>
  string(1) "1"
  ["param2"]=>
  string(1) "2"
}

 

 

ウェブプログラミングについては下記の本も参考になるので、スキルアップにお役立てください。

created by Rinker
徳丸 浩(著)
ページ数: 688ページ
出版社:SBクリエイティブ
発売日:2018/06/21

出典:amazon