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) {
// 不正なファイル名が指定されたときの処理。
}