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 回答
-1

你可以使用:

$ext = end(explode('.',$filename));

注意:依靠此扩展名来确定文件类型是不安全的。

于 2013-07-07T18:19:16.843 回答