我想从PHP中的已知基本名称中获取文件名。
我搜索并找到了pathinfo()
,但是你已经在参数中给出了基本名称和扩展名的文件名。
同样在pathinfo()
文档中:
$path_parts = pathinfo('/path/basename');
var_dump($path_parts['extension']);
这或多或少是我需要的,但结果是:
string '' (length=0)
我想要扩展名,而不是空字符串。我知道基本名称,但我不知道扩展名,我怎么抓住它?
答案 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));
注意:依靠此扩展来确定文件类型是不安全的。