PHP でルートディレクトリパスを見つける

Subodh Poudel 2023年1月30日
  1. PHP で __DIR__ 事前定義された定数を使用してファイルのディレクトリのパスを検索する
  2. PHP で dirname() 関数を使用してプロジェクトのルートディレクトリのパスを検索する
  3. PHP で $_SERVER['DOCUMENT_ROOT'] を使用してファイルのドキュメントルートディレクトリを検索する
PHP でルートディレクトリパスを見つける

PHP プロジェクトのルートディレクトリのパスを見つけるためのさまざまな方法を紹介します。

PHP で __DIR__ 事前定義された定数を使用してファイルのディレクトリのパスを検索する

PHP には、さまざまな機能を実現するために使用できる事前定義された定数があります。__DIR__ は、ルートディレクトリから現在のファイルの完全なファイルパスを返す 1つの魔法の定数です。これは、ファイルのディレクトリを返すことを意味します。dirname(__FILE__) も同じ目的で使用できます。

プロジェクトのルートディレクトリである project フォルダがあるとします。project フォルダには、次のファイルパス/var/www/HTML/project があります。project フォルダー内には、index.php ファイルと別のフォルダーmaster があります。master フォルダー内には、login.phpregister.php の 2つの PHP ファイルがあります。

project
├── index.php
└── master
 ├── login.php
 └── register.php

現在、login.php に取り組んでいるとします。このようなファイル構造では、login.php ファイルの __DIR__ 定数を使用してディレクトリのパスを取得できます。echo 関数を使用して定数を出力できます。

サンプルコード:

<?php
echo __DIR__;
?>

出力:

/var/www/html/project/master

PHP で dirname() 関数を使用してプロジェクトのルートディレクトリのパスを検索する

関数 dirname(__FILE__)__DIR__ に似ています。この関数を使用して、ファイルのディレクトリのパスを見つけることができます。dirname() 関数を使用して、ファイルパスの上位レベルに移動することもできます。関数の最初のパラメーターはファイルのパスであり、__FILE__ 定数で示されます。2 番目のパラメーターは、レベルと呼ばれる整数です。レベルを設定して、ファイルパスでレベルアップするように関数を指示できます。レベルのデフォルト値は 1 です。レベルを上げると、関数は 1 レベル上のファイルパスを取得します。したがって、この関数を使用して、PHP でプロジェクトのルートディレクトリの正確なファイルパスを見つけることができます。

たとえば、ファイル構造を最初の方法と見なすことができます。ファイル login.php から作業して、レベル 2 および __FILE__ 定数をパラメーターとして持つ dirname() 関数を使用できます。次に、作業ディレクトリの正確なファイルパスを取得できます。したがって、ファイルパスを上下に移動するという選択に応じて、レベルを変更できます。このようにして、PHP でプロジェクトのルートディレクトリのパスを見つけることができます。

サンプルコード:

<?php
echo dirname(__FILE__,2);
?>

出力:

/var/www/html/project

PHP で $_SERVER['DOCUMENT_ROOT'] を使用してファイルのドキュメントルートディレクトリを検索する

$_SERVER[] 配列と DOCUMENT_ROOT インデックスを使用して、現在実行中のスクリプトのドキュメントルートディレクトリを見つけることができます。ドキュメントのルートディレクトリの完全なパスを返します。サーバーの構成ファイルで定義されています。上記のファイル構造の場合、$_SERVER['DOCUMENT_ROOT']echo 関数で出力して、ファイル login.php のドキュメントルートディレクトリを見つけることができます。

以下の出力に示すように、パス htmllogin.php ファイルのドキュメントルートディレクトリであることがわかりました。ルートディレクトリのファイルパスも確認できます。

サンプルコード:

<?php
echo $_SERVER['DOCUMENT_ROOT'];
?>

出力:

/var/www/html
著者: 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

関連記事 - PHP File