(PHP 4 >= 4.0.3, PHP 5, PHP 7)
pathinfo — ファイルパスに関する情報を返す
$path
[, int $options
= PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME
] ) : mixed
pathinfo() は、path
に関する情報を返します。options
によって連想配列あるいは文字列のどちらかとなります。
注意:
カレントのパスに関する情報を取得するには、 定義済みの変数 のセクションをご覧ください。
pathinfo() はロケールを考慮して処理を行います。 マルチバイト文字を含むパスを正しく処理するには、正しいロケールを setlocale() 関数で設定しておかなければなりません。
path
調べたいパス。
options
指定する場合は、どの要素を返すのかを
PATHINFO_DIRNAME
、
PATHINFO_BASENAME
、
PATHINFO_EXTENSION
あるいは
PATHINFO_FILENAME
のいずれかで指定します。
options
を省略した場合はすべての要素を返します。
options
パラメータを渡さなかった場合は、次の要素を含む連想配列を返します。
dirname、basename、
extension (存在すれば)、そして filename。
注意:
path
に複数の拡張子が含まれる場合は、PATHINFO_EXTENSION
は最後の拡張子だけを返します。また、PATHINFO_FILENAME
は最後の拡張子だけを取り除きます (最初のサンプルを参照ください)。
注意:
path
に拡張子がない場合は、 extension 要素は返されません (以下の二番目の例を参照ください)。
注意:
path
の basename がドットで始まる場合は、それに続く文字は extension とみなされます。そして filename は空文字列となります (以下の三番目の例を参照ください)。
options
を指定すると、
要求した要素を文字列で返します。
バージョン | 説明 |
---|---|
5.2.0 |
定数 PATHINFO_FILENAME が追加されました。
|
例1 pathinfo() の例
<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // PHP 5.2.0 以降
?>
上の例の出力は以下となります。
/www/htdocs/inc lib.inc.php php lib.inc
例2 pathinfo() での、拡張子を空にしたときと拡張子がないときの違いの例
<?php
$path_parts = pathinfo('/path/emptyextension.');
var_dump($path_parts['extension']);
$path_parts = pathinfo('/path/noextension');
var_dump($path_parts['extension']);
?>
上の例の出力は、 たとえば以下のようになります。
string(0) "" Notice: Undefined index: extension in test.php on line 6 NULL
例3 pathinfo() での、ドットファイルの例
<?php
print_r(pathinfo('/some/path/.test'));
?>
上の例の出力は、 たとえば以下のようになります。
Array ( [dirname] => /some/path [basename] => .test [extension] => test [filename] => )