filename

string filename( string $baseDir, string $filepath )

filename は、$baseDir$filepath
結合させたファイル名を返します。
このとき、$filepath
親ディレクトリへのパスが含まれている場合は
例外をスルーします。

つまり、filename が返すファイル名は、
$baseDir 以下のディレクトリにあることが保証されます。

引数

$baseDir は、起点となるディレクトリです。

$filepath は、ファイル名(へのパス)です。

内部処理

$filepath のヌルバイト文字を除去する。

$filepath'../' が含まれているなら、例外をスルーする。

$filepath'/' で始まっているなら、例外をスルーする。

$baseDir$filepath を結合させたファイル名を返す。

filename の使用例を以下に示します。 // 次の例では、'test.html' が返ります。
$ramp->filename('', 'test.html');

// 次の例では、'./test.html' が返ります。
// $baseDir の終端の / は、あってもなくても構いません。

$ramp->filename('.', 'test.html');
$ramp->filename('./', 'test.html');

// 次の例では、'dir1/dir2/test.html' が返ります。
$ramp->filename('dir1', 'dir2/test.html');

// 次の例では、例外がスルーされます。
// よって、この例のように、filename は
// 基本的に try ~ catch で囲んで使います。

try {
    $ramp->filename('dir1', '/test.html');
    $ramp->filename('dir1', '../test.html');
    $ramp->filename('dir1', 'dir2/../test.html');
}
catch (Exception $e) {
    // 不正なファイル名が指定されたときの処理。
}