PHP で現在のスクリプトファイル名を取得する
スクリプトには、現在実行中のディレクトリ名を含む現在のファイル名が必要な場合があります。このチュートリアル記事では、プロジェクト内の現在のスクリプトのファイル名を取得する方法について説明します。
PHP には、現在のファイル名を見つけるためのさまざまな方法が用意されています。まず、すべてのパラメーターとメソッドを簡単に理解し、次にそれらを組み合わせて結果を取得します。
-
__FILE__
:PHP は、その使用法に基づいて使用される 9つの魔法の定数を提供します。これらの定数は、さまざまな拡張機能によって作成されます。これらの定数はすべて、コンパイル時に解決されます。
__FILE__
は、現在の.php ファイルへのファイルシステムパスを提供する定和の 1つです。 -
$_SERVER
:$_SERVER
は、ヘッダー、パス、およびスクリプトの場所に関する情報を含む配列です。Web サーバーはこのすべての情報を作成します。 -
PHP_SELF
:PHP_SELF
は、現在実行中のスクリプトのファイル名を取得するために使用される変数です。これは、ドキュメントルートを基準にしています。ユーザーがコマンドラインでこのコマンドを実行すると、スクリプト名に関する情報が出力されます。 -
SCRIPT_FILENAME
:これは、現在実行中のスクリプトのファイル名を取得するために使用される変数であり、唯一の違いは、そのパスが絶対であるということです。
-
SCRIPT_NAME
:現在のスクリプトのパスが含まれています。これは、自分自身を指す必要があるページに役立ちます。
-
REQUEST_URI
:URI は、ページの場所にアクセスするために指定されました(例:
/index.html
)。
次に、上記のすべてのコマンドを一緒に使用して、ファイル名を取得しましょう。
-
$_SERVER['SCRIPT_NAME']
:ファイル拡張子が付いた親ファイル名
-
$_SERVER['PHP_SELF']
:ファイル拡張子が付いた親ファイルの相対 URL。たとえば、
http://example.com/parentFolder/child.php
は/parentFolder/child.php
になります。 -
$_SERVER['SCRIPT_FILENAME']
:ファイル拡張子が付いた親ファイルの完全な URL
-
$_SERVER['REQUEST_URI']
:親ファイル親フォルダ名
組み込みの PHP 関数 basename()
は、ファイルのパスが basename()
関数へのパラメーターとして指定されている場合、ファイルのベース名を返します。
-
basename(__FILE__)
:PHP ファイル拡張子を持つ現在のファイル名。
-
basename(__FILE__, '.php')
:PHP ファイル拡張子のない現在のファイル名。
-
basename($_SERVER['PHP_SELF'], ".php")
:PHP ファイル拡張子のない現在のファイル名。
-
basename($_SERVER['PHP_SELF'])
:PHP ファイル拡張子を持つ現在のファイル名。
-
pathinfo(__FILE__, PATHINFO_FILENAME)
:PHP ファイル拡張子のない現在のファイル名。
PHP で現在のスクリプトファイル名を取得するためのサンプルコード
<?php
echo "\$_SERVER['SCRIPT_NAME']: ";
echo $_SERVER['SCRIPT_NAME'];
echo "\n";
echo "\$_SERVER['PHP_SELF']: ";
echo $_SERVER['PHP_SELF'];
echo "\n";
echo "\$_SERVER['SCRIPT_FILENAME']: ";
echo $_SERVER['SCRIPT_FILENAME'];
echo "\n";
echo "basename(__FILE__): ";
echo basename(__FILE__);
echo "\n";
echo "basename(__FILE__, '.php'): ";
echo basename(__FILE__, '.php');
echo "\n";
echo "basename(\$_SERVER['PHP_SELF'], '.php'): ";
echo basename($_SERVER['PHP_SELF'], '.php');
echo "\n";
echo "basename(\$_SERVER['PHP_SELF']): ";
echo basename($_SERVER['PHP_SELF']);
echo "\n";
echo "pathinfo(__FILE__, PATHINFO_FILENAME): ";
echo pathinfo(__FILE__, PATHINFO_FILENAME);
echo "\n";
?>
出力:
Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.
LinkedIn