LucyとRuby

php入門:現在のフォルダのpathを取得するdirname()関数

phpで現在フォルダのpathをdirname()関数を使って取得する方法を説明します。

dirname(__FILE__)で現在のフォルダのパスを取得する

現在のフォルダのパスを取得するには、関数dirname()と定数__FILE__を使います。

dirname()

dirname()は親ディレクトリのパスを返す関数です。定義は下。

dirname(string $path, int $lebels = 1);

引数$pathにフォルダやファイルへのパスを入力します。このパスの親ディレクトリが返り値となります。引数$lebelsはいくつ上のディレクトリを返すかを指定します。デフォルト値は1で引数$pathの直親のディレクトリを意味します。

__FILE__

__FILE__はphpにおける特殊な定数で、この定数が記述されたファイルのフルパス(文字列)が格納されています。例えばローカル環境のWorPressのindex.phpファイルの中で使用すると以下のような結果が得られます。

<?php
echo __FILE__;    //メモ:__FILE__は定数なのでアポストロフィで囲う必要なし

// result
// C:\xampp\htdocs\wordpress05\wp-content\themes\theme_name\index.php

注意:__FILE__を関数で呼び出す場合は注意

__FILE__を使って独自の関数を作成した場合に、その関数を別のファイルで呼び出したときは、__FILE__にはどのファイルのパスが格納されるのでしょうか?答えは、__FILE__が記述されているファイルそのもののパスが格納されます。

例えばWordPressのfunctions.phpファイルに__FILE__を使った関数を作成し、その関数をindex.phpファイルで呼び出した場合は、__FILE__にはfunctions.phpファイルのパスが格納されます。

dirname(__FILE__)

dirname()__FILE__を組み合わせてdir(__FILE__)とすることで、下記の記述で現在のファイルが存在するフォルダのパスを取得することができます。例えばローカル環境のWordPressのindex.htmlでは下記のような結果となります。

<?php
dirname(__FILE__);

// result
// C:\xampp\htdocs\wordpress05\wp-content\themes\theme_name

先ほどの例のecho __FILE__;ではファイルまでのパスが取得できました、dirname(__FILE__);ではフォルダ名までのパスが取得できました。

post no. 248

Comments