説明
arraystring pathinfo(string $path
, int $flags
= PATHINFO_ALL
)
注意:
カレントのパスに関する情報を取得するには、
定義済みの変数
のセクションをご覧ください。
注意:
pathinfo は入力された文字列をそのまま扱います。
よって、実際のファイルシステムや
"..
" のようなパスコンポーネントも認識しません。
注意:
Windows システムでのみ、\
文字はディレクトリのセパレータとして解釈されます。
それ以外のシステムでは、他の文字と同じように扱われます。
警告
pathinfo はロケールを考慮して処理を行います。
マルチバイト文字を含むパスを正しく処理するには、正しいロケールを
setlocale 関数で設定しておかなければなりません。
パラメータ
-
path
-
調べたいパス。
-
flags
-
指定する場合は、どの要素を返すのかを
PATHINFO_DIRNAME
、
PATHINFO_BASENAME
、
PATHINFO_EXTENSION
あるいは
PATHINFO_FILENAME
のいずれかで指定します。
flags
を省略した場合はすべての要素を返します。
戻り値
flags
パラメータを渡さなかった場合は、次の要素を含む連想配列を返します。
dirname
、basename
、
extension
(存在すれば)、そして filename
。
注意:
path
に複数の拡張子が含まれる場合は、
PATHINFO_EXTENSION
は最後の拡張子だけを返します。また、
PATHINFO_FILENAME
は最後の拡張子だけを取り除きます
(最初のサンプルを参照ください)。
注意:
path
に拡張子がない場合は、
extension
要素は返されません
(以下の二番目の例を参照ください)。
注意:
path
の basename
がドットで始まる場合は、それに続く文字は
extension
とみなされます。そして filename
は空文字列となります (以下の三番目の例を参照ください)。
flags
を指定すると、
要求した要素を文字列で返します。
例
例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";
?>
/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] =>
)
例4 配列の分解機能を、pathinfo と一緒に使う例
flags
パラメータは、ビットマスクではありません。
単一の値だけを指定できます。
パース済みの値の限られた一部を選択したい場合、
配列を分解する機能を以下のようにして使います:
<?php
['basename' => $basename, 'dirname' => $dirname] = pathinfo('/www/htdocs/inc/lib.inc.php');
var_dump($basename, $dirname);
?>
string(11) "lib.inc.php"
string(15) "/www/htdocs/inc"
参考
- dirname
- basename
- parse_url
- realpath