PHP でベース URL を検索する

Subodh Poudel 2022年4月12日
PHP でベース URL を検索する

この記事では、PHP でアプリケーションのベース URL を見つけるためのいくつかの方法を紹介します。

PHP で $_SERVER スーパーグローバル変数を使用してベース URL を検索する

PHP の $_SERVER スーパーグローバル変数には、サーバーと実行環境に関する情報が含まれています。

スーパーグローバル変数という用語は、プログラム内のすべてのスコープで変数にアクセスできることを意味します。変数は事前定義された配列であり、さまざまなインデックスが含まれています。

さまざまなインデックスを使用して、パス、ヘッダー、およびスクリプトの場所を見つけることができます。 $_SERVER 配列で使用される使用可能なインデックスの例としては、SERVER_NAMESERVER_ADDRHTTP_HOSTREMOTE_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 Poudel
Subodh Poudel avatar Subodh Poudel avatar

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