目的
アップロードされたファイルが見えないファイルかどうかを判別する時に
php の標準の関数を利用して、ファイルのパスで行うようにしました。
その時に使用する basename と dirname の挙動について調べてみます。
ちなみに
Windows では、スラッシュ(/) とバックスラッシュ () の両方がディレクトリ区切り文字として使われます。 その他の環境ではスラッシュ(/)になります。
やってみる
$ vim test.php
<?php
$files = [
'p_dir1/p_dir2',
'p_dir1/p_dir2/test.jpg',
'test2.jpg',
];
foreach ($files as $v) {
echo $v . "\n";
echo "dirname: " . dirname($v) . "\n";
echo "basename: " . basename($v) . "\n";
echo "\n";
}
実行結果
$ php test.php
p_dir1/p_dir2
dirname: p_dir1
basename: p_dir2
p_dir1/p_dir2/test.jpg
dirname: p_dir1/p_dir2
basename: test.jpg
test2.jpg
dirname: .
basename: test2.jpg