問題 × 解決策

phpで現在のURLを取得する方法

  • 2020年08月23日
  • PHP

問題

phpで現在のURLを取得するには?

解決策

「(empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']」で取得できる。

 

「$_SERVER」による現在のURLの取得

phpで「$_SERVER」を使い、現在のURLを取得する方法をご紹介します。

プロトコル、ホスト名、ページ自体のURLを取得してつなげる。

プロトコル(http:// または https://)とホスト名(例:keylopment.com)とページ自体のURL(例:/faq/1999/)をそれぞれ取得し、それらをつなげることで現在のURLとして取得することができます。
それぞれを取得するために、「$_SERVER」を使用します。

「$_SERVER」のパラメータの一例

パラメータを含めた記述 内容 取得できる値の例
$_SERVER[‘HTTPS’] HTTPSプロトコルを通じて実行されている場合(URLがhttps://~の場合)に、空でない値が返されます。 「https://」ならば空でない値、「http://」ならば空の値
$_SERVER[‘HTTP_HOST’] ホスト名を取得します。 keylopment.com
$_SERVER[“REQUEST_URI”] ページ自体のURLを取得します。 /faq/1999/

プロトコルを取得します。

$_SERVER[‘HTTPS’]」を使って、返ってくる値が空でなければ「https://」空ならば「http://」を設定します。

if( !empty($_SERVER['HTTPS'] ) ){
	$protocol = 'https://';
}else{
	$protocol = 'http://';
}

ホスト名、ページ自体のURLを取得し、3つをつなげます。

先ほどのプロトコル情報とホスト名とページ自体のURLをつなげて、現在のURLとして取得します。

$url = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

出力例:http://keylopment.com/faq/1999/

参考ページ

以下のサイトが、より詳しく解説してくれています。

【phpで現在のURLを取得する方法! | CodeCampus】
https://blog.codecamp.jp/php-request-url

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

5 + seventeen =

「問題 × 解決策」
月別アーカイブ一覧

「問題 × 解決策」
月別アーカイブ一覧