php でファイルパスを検索する
PHP
Published: 2018-08-04

目的

アップロードされたファイルが見えないファイルかどうかを判別する時に

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

参考URL