PHP でベース URL を検索する
この記事では、PHP でアプリケーションのベース URL を見つけるためのいくつかの方法を紹介します。
PHP で $_SERVER
スーパーグローバル変数を使用してベース URL を検索する
PHP の $_SERVER
スーパーグローバル変数には、サーバーと実行環境に関する情報が含まれています。
スーパーグローバル変数という用語は、プログラム内のすべてのスコープで変数にアクセスできることを意味します。変数は事前定義された配列であり、さまざまなインデックスが含まれています。
さまざまなインデックスを使用して、パス、ヘッダー、およびスクリプトの場所を見つけることができます。 $_SERVER
配列で使用される使用可能なインデックスの例としては、SERVER_NAME
、SERVER_ADDR
、HTTP_HOST
、REMOTE_HOST
などがあります。
Web サーバーはこれらのインデックスを提供します。したがって、インデックスの可用性は Web サーバーによって異なります。$_SERVER
配列の使用例を以下に示します。
<?php
echo $_SERVER['SERVER_NAME'];
?>
出力:
localhost
上記の例では、使用されるサーバーは localhost です。$_SERVER['SERVER_NAME]
配列は、現在のスクリプトが実行されているサーバーのホスト名を返します。
$_SERVER
配列を使用して、PHP でアプリケーションのベース URL を見つけることができます。SERVER_NAME
および REQUEST_URI
インデックスは、ベース URL を見つけるのに役立ちます。
REQUEST_URI
インデックスは、現在の Web ページの Unifrom Resource Identifier(URI)を返します。
たとえば、変数 $server
を作成し、その中に $_SERVER['SERVER_NAME']
を格納します。同様に、$_SERVER['REQUEST_URI']
を $uri
変数に格納します。
次に、文字列 http://
を変数 $server
および $uri
と連結し、print
関数を使用してそれらを出力します。
その結果、現在のアプリケーションのベース URL を確認できます。以下の例は、localhost
で実行されている現在のアプリケーションのパスを示しています。
$server = $_SERVER['SERVER_NAME'];
$uri = $_SERVER['REQUEST_URI'];
print "http://" .$server. $uri;
出力:
http://localhost/my_app/
$_SERVER
配列の HTTP_HOST
インデックスを使用してホスト名を取得することもできます。インデックス HTTP_HOST
は、アプリケーションの現在のリクエストのホストヘッダーを返します。
これと SERVER_NAME
インデックスの違いは、HTTP_HOST
がクライアント要求からヘッダーを取得するのに対し、SERVER_NAME
はサーバー構成で定義された情報を取得することです。
SERVER_NAME
インデックスは、値がサーバーから返され、変更できないため、HTTP_HOST
よりも信頼性があります。アプリケーションのベース URL を取得するための HTTP_HOST
インデックスの例を以下に示します。
$host = $_SERVER['HTTP_HOST'];
$uri = $_SERVER['REQUEST_URI'];
print "http://" .$host. $uri;
出力:
http://localhost/my_app/
上記は、PHP でアプリケーションのベース URL を見つける方法です。
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn