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