PHPでURLを取得する(部分取得やクエリ文字除外なども)

  • このエントリーをはてなブックマークに追加
  • Pocket

スポンサードリンク

SERVER変数を使ったURL取得法をご紹介します。

ホスト名だけや、ホスト名以下のURIのみ、クエリ文字を除外して取得などいろいろな取得方法があります。

それら一般的な方法と、便利に使い回す方法もご紹介します。

 

現在アクセスしているURLが以下の場合を仮定しています。

http://www.flatflag.nir87.com/url-963?id=256

現在アクセスしているページのURLを取得

サンプルコード

http://www.flatflag.nir87.com/url-963?id=256

現在のURLが表示されました。

説明

上記サンプルでは以下のように動作しています。

$_SERVER[‘HTTPS’] で https のページかを判定

(empty($_SERVER[‘HTTPS’]) ? ‘http://’ : ‘https://’)

サーバー変数で現在のページがHTTPSかどうかを判定しています。

三項演算子を使って条件分岐をさせておりempty()$_SERVER['HTTPS']が空だったらhttp://そうじゃなければhttps://を表示させます。

三項演算子やempty()に関しては以下の記事で解説しています。

参考:三項演算子で一行で簡単に条件分岐
参考:「empty」で0や空文字判定

$_SERVER[‘HTTP_HOST’] でホスト名を表示

$_SERVER[‘HTTP_HOST’]

現在のホスト名(ドメイン部分)を取得するサーバー変数です。

以下の部分を取得します。

www.flatflag.nir87.com

$_SERVER[‘REQUEST_URI’] でURI(ドメイン以下のパス)を取得

$_SERVER[‘REQUEST_URI’]

現在のURI(ドメイン以下のパス)を取得するサーバー変数です。

以下の部分を取得します。

/url-963?id=256

クエリ文字の処理

クエリ文字を除いて取得などのいろいろな取得方法をご紹介します。

クエリ文字を除いて表示した場合と比較

最後の ? 以降のクエリ文字を省略する方法と比較してみましょう。

http://www.flatflag.nir87.com/url-963?id=256
http://www.flatflag.nir87.com/url-963

最後のサーバー変数を$_SERVER['SCRIPT_NAME']とすることで?(クエスチョンマーク)以降のクエリ文字は表示されません。

クエリ文字とは?

Webアプリケーションなどでクライアントからサーバにパラメータを渡すのに使われる表記法で、URLの末尾に「?」マークを付け、続けて「名前=値」の形式で記述する。

出典:IT用語辞典 e-Words

クエリ文字だけ表示

id=256

URLの?(クエスチョンマーク)以降のクエリ文字だけ取得できました。

 

今回はサーバー変数を使ったURL取得法をご紹介しました。

サーバー変数は他にもさまざまな種類があります。

詳しくは以下の記事で解説しています。

参考:サーバー変数一覧と実用例

定数に定義して使い回そう

最初にご紹介したURL取得法はよく使いますが、複数のサーバー変数を繋ぎ合わせた長いコードとなり、あちこちで使い回すには長ったらしいでしょう。

以下のように定数として定義し、使い回すと便利ですね。

http://www.flatflag.nir87.com/url-963?id=256

定数で定義すれば簡単に使い回すことが出来ますね。

 

定数については以下の記事で解説しています。

参考:PHPの定数を使いこなす

スポンサードリンク

  • このエントリーをはてなブックマークに追加
  • Pocket

コメントを残す

*