如何从基本名称中查找文件名或扩展名

时间:2013-07-07 18:17:09

标签: php pathinfo

我想从PHP中的已知基本名称中获取文件名。

我搜索并找到了pathinfo(),但是你已经在参数中给出了基本名称和扩展名的文件名。

同样在pathinfo()文档中:

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

这或多或少是我需要的,但结果是:

string '' (length=0)

我想要扩展名,而不是空字符串。我知道基本名称,但我不知道扩展名,我怎么抓住它?

3 个答案:

答案 0 :(得分:0)

要列出文件名,只知道基础,您可以使用glob。它返回一个数组,因为可能有几个文件具有相同的基础但扩展名不同,或者根本没有:

$files = glob($base.'.*');
if (!empty($files))
    echo $files[0];

答案 1 :(得分: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>';
    }
}

答案 2 :(得分:-1)

您可以使用:

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

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