・IT/Web系エンジニアの経験者の方
・どこの転職エージェントを利用しようか迷っている方
それなら、キッカケエージェントにご相談!
キッカケエージェントでは、少数精鋭のエージェントが、エンジニアの経験やスキル、志向性などをカウンセリングし、的確なアドバイスを提供します!
また、徹底した企業へのヒアリングにより、最適なマッチングを実現し、今では内定率が一般的なエージェントの2倍以上となっています!
転職エージェントに迷っている方、まずは無料でキャリア相談から!
(この記事は2022年6月8日に投稿されました。)
PHPのREQUEST_URIを使用すると、現在表示しているページのURLを取得することができます。
REQUEST_URIとは現在のページのURIを取得できるサーバー情報や実行時の環境情報の変数となります。
URIって何かと思いますが、とにかく現在のページのURLを取得できる変数だと思っていただいて構いません。
そして、現在のページのURLを相対パスとして取得するので、取得したURLを条件に、各ページでの処理を変更する際に便利です。
また、REQUEST_URI以外にもサーバーの情報を取得できる変数が多々ありますので、変数名を変更すると、他のサーバーの情報を取得することができます。
今回はPHPのREQUEST_URIで現在のURLを取得する方法について紹介していきます。
REQUEST_URIとは
冒頭でも紹介しましたが、REQUEST_URIとは現在のページのURIを取得できるサーバー情報や実行時の環境情報の変数となります。
そもそもURIとは、「Uniform Resource Identifier」の略で、Web上にあるあらゆるファイルを認識するための識別子となります。
わかりにくいかと思いますが、URLと同じものと認識しても良いでしょう。
簡単に言いますと、REQUEST_URIを使用することでサイトのURLを取得することができるということです。
REQUEST_URIの書き方
REQUEST_URIの書き方は下記のようになります。
1 | <?php $_SERVER['RTEQUEST_URI']; ?> |
$_SERVERの後ろに[]を付け、その中に「’RTEQUEST_URI’」と追記します。
すると、現時点のページのURLを取得することができます。
また、下記のコードのようにecho関数を使用することで、URLを画面上に出力することができるようになります。
1 | <?php echo $_SERVER['RTEQUEST_URI']; ?> |
REQUEST_URIで現在のURLを取得するサンプルコード
REQUEST_URIで現在のURLを取得するサンプルコードをご紹介します。
例えば、
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>REQUEST_URIで現在のURLを取得</title> </head> <body> <p>ここに現時点のURLを取得</p> <?php echo $_SERVER['RTEQUEST_URI']; ?> </body> </html> |
実行結果
MAMPを使用し、ローカルホストのサーバーでPHPを実行してみましたが、現在のURLが表示されています。
実際のサイトにREQUEST_URIを使って現在のURLを取得してみた
実際のサイトにREQUEST_URIを使って現在のURLを取得してみましたのでご紹介していきます。
下記のコードをheader.php追記して、WordPressで作成したサイトのそれぞれのページを表示してみました。
1 2 3 4 5 | <body> <div class= "url-area"> <p>⚫︎現在のURL</p> <p><?php echo $_SERVER['RTEQUEST_URI']; ?></p> </div> |
TOPページでREQUEST_URIを使用した場合
TOPページでREQUEST_URIを使用した場合の結果です。
実行結果
TOPページでREQUEST_URIを使用した場合は、「/」が表示されます。
TOPページ以外ででREQUEST_URIを使用した場合
TOPページ以外でREQUEST_URIを使用した場合の結果です。
実行結果
TOPページ以外ででREQUEST_URIを使用した場合は、ドメイン以降に続く、それぞれのURLが文字列で表示されます。
今回はURLが「/aaa/sports」のように表示されていますが、パーマリンクを設定することで取得するURLを変更することが可能になります。
もし、WordPressでパーマリンクを設定する方法につきまして詳しく知りたい場合は、下記の記事をご参考ください。
REQUEST_URIの実際の使用例
REQUEST_URIの実際の使用例についてご紹介します。
REQUEST_URIは現在のページのURLを取得するため、各ページによって表示する値などを制御することができます。
例えば、「スポーツ一覧」のカテゴリーを持つアーカイブページには「スポーツ一覧」という文字を表示し、「球技」のカテゴリーを持つアーカイブページには、「球技」という文字を表示するようにします。
そして、「スポーツ一覧」と「球技」の両カテゴリーを持つアーカイブページには「スポーツ一覧 × 球技」という文字を表示するようにします。
すると、以下のようなコードで実施することができます。
⚫︎ header.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php $getUrl = $_SERVER['REQUEST_URI']; $peaCat = $cross = $chilCat = ''; if(strpos($getUrl, 'sports') != '') { $peaCat = 'スポーツ一覧'; if(strpos($getUrl, 'kyugi') != '' ) { $cross = ' × '; $chilCat = '球技'; } } ?> <div id= "text"> <p><?php echo $peaCat; ?><span><?php echo $cross; ?></span><?php echo $chilCat; ?></p> </div> |
実行結果
階層的には「スポーツ一覧」の中に「球技」があるため、「スポーツ一覧」と「球技」のカテゴリーは親子関係となっています。
そのため、「スポーツ一覧」のカテゴリーページには「スポーツ一覧」が表示され、「球技」のカテゴリーページには、「スポーツ一覧 × 球技」が表示されています。
もし、他にもカテゴリーを増やしたい場合はif文を追加しましょう。
また、分岐が多くなる場合はswitch文に置き換えても良いかと思います。
REQUEST_URI以外に使用できるサーバー情報の変数一覧
今回は、現在のURLを取得するためにREQUEST_URIを使用しましたが、これ以外にも、サーバー情報を取得できる変数がたくさん存在します。
そのため、ここでは使用できるサーバー情報の変数一覧についてご紹介していきます。
変数名 | 説明 |
---|---|
PHP_SELF | スクリプトのファイル名 |
SERVER_ADDR | サーバーのIPアドレス |
SERVER_NAME | サーバーのホスト名 |
SERVER_SOFTWARE | レスポンスヘッダに置かれている |
SERVER_PROTOCOL | リクエストされた際のプロトコル名とバージョン |
REQUEST_METHOD | リクエストのメソッド名(GETやPOSTなど) |
REQUEST_TIME | リクエスト開始時のタイムスタンプ |
QUERY_STRING | ページがアクセスされた際に付加された検索引数 |
DOCUMENT_ROOT | ドキュメントのルートディレクトリ |
HTTP_ACCEPT | ヘッダの値 |
HTTP_ACCEPT_CHARSET | Aceept-Charsetヘッダの値(utf-8とか) |
HTTP_ACCEPT_ENCODING | Accept-Encodingヘッダの値(gzipとか) |
HTTP_ACCEPT_LANGUAGE | Accept-Languageヘッダの値(jaとか) |
HTTP_CONNECTION | Connectionヘッダの値(Keep-Aliveとか) |
HTTP_HOST | ホスト名 |
HTTP_REFERER | 現在のページに遷移する前のURL |
HTTP_USER_AGENT | User-Agentヘッダの値 |
HTTPS | Httpsかどうか(HTTPSではない場合、空が返される) |
REMOTE_ADDR | ユーザーのIPアドレス |
REMOTE_HOST | アクセスしているホスト名 |
REMOTE_PORT | アクセスに使用されているポート番号 |
SCRIPT_FILENAME | スクリプトの絶対パス |
SERVER_ADMIN | Webサーバー設定ファイルのSERVER_ADMINにセットされている値 |
SERVER_PORT | Webサーバーの通信ポートとして使用されているポート番号 |
SERVER_SIGNATURE | サーバーのバージョン名とバーチャルホスト名の文字列 |
PATH_TRANSLATED | 現在のスクリプトのファイルシステム上のパス |
SCRIPT_NAME | 現在のスクリプトパス |
PHP_AUTH_DIGEST | HTTPダイジェスト認証時のAuthorizationヘッダの値 |
PHP_AUTH_USER | HTTP認証済みユーザー名 |
PHP_AUTH_PW | HTTP認証済みユーザーのパスワード |
AUTH_TYPE | HTTP認証済みの認証形式 |
PATH_INFO | 実際のスクリプトファイル名とクエリ文字列の間にある、クライアントが提供するパス名 |
ORIG_PATH_INFO | PHPでの処理前のPATH_INFO |
まとめ
⚫︎ REQUEST_URIとは現在のページのURIを取得できるサーバー情報や実行時の環境情報の変数である
(相対パスで取得)
⚫︎ TOPページでREQUEST_URIを使用した場合は、「/」を取得する
⚫︎ TOPページ以外ででREQUEST_URIを使用した場合は、ドメイン以降に続く、それぞれのURLを取得する
⚫︎ REQUEST_URIの実際の使用例として、各ページによって表示する値などを制御することができる
(表示する内容が条件によって異なる場合に便利)