0

PHP で既知のベース名からファイル名を取得したいと考えています。

を検索して見つけましpathinfo()たが、引数にベース名と拡張子を含むファイル名を既に指定しています。

また、pathinfo()ドキュメントで:

$path_parts = pathinfo('/path/basename');
var_dump($path_parts['extension']);

それは多かれ少なかれ私が必要とするものですが、結果は次のとおりです。

string '' (length=0)

空の文字列ではなく、拡張子が必要です。ベース名はわかっているのですが、拡張子がわかりません。どうすれば取得できますか?

4

3 に答える 3

0

ベースのみを知っているファイル名をリストするには、 を使用できますglob。ベースが同じで拡張子が異なる複数のファイルが存在するか、まったく存在しない可能性があるため、配列を返します。

$files = glob($base.'.*');
if (!empty($files))
    echo $files[0];
于 2013-07-07T18:24:10.530 に答える
0

ファイルに拡張子がある場合、次のように取得できます

$file_name = 'test.jpg';
$ext = pathinfo($file_name, PATHINFO_EXTENSION);
echo $ext;  // output:jpg

例: images ディレクトリ内のすべてのファイルをスキャンし、ext が許可されているかどうかを表示するには

$image_path = __DIR__ . '/images/';
$files = scandir($image_path);
$allowed_images = array('jpg', 'jpeg', 'gif', 'png');
foreach ($files as $file_name) {
    $ext = pathinfo($file_name, PATHINFO_EXTENSION);
    if (in_array($ext, $allowed_images)) {
        echo $ext . ' allowed<br>';
    } else {
        echo $ext . ' not allowed<br>';
    }
}
于 2013-07-07T18:29:24.083 に答える