我有一个名为94bf663a100e848fb599209af8cdc2b5.wmv的文件。我知道如果我只使用名称94bf663a100e848fb599209af8cdc2b5,pathinfo
将不会给我扩展名。我相信glob
仅用于检查文件是否存在。那么只要知道文件名就可以获得文件扩展名(94bf663a100e848fb599209af8cdc2b5)吗?
答案 0 :(得分:13)
正如php glob manual page上的示例所示,glob
执行不只检查文件是否存在,它会返回与表达式匹配的每个文件。
以下是根据您的需求修改that page上的示例:
$name = "94bf663a100e848fb599209af8cdc2b5";
$matching = glob($name . ".*");
$info = pathinfo($matching[0]);
$ext = $info['extension'];
这假设有一个(并且只有一个)具有该名称的文件(任何扩展名),但是如果文件可能不存在,或者可能存在多个文件,则应该能够修改它具有相同名称和不同扩展名的文件。
答案 1 :(得分:1)
finfo_file()
函数将检查文件的字节签名以返回其mimetype。从那里,您可以大部分推断出正确的文件扩展名。
// Adapted from the PHP docs
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
echo finfo_file($finfo, $filename);
finfo_close($finfo);
答案 2 :(得分:0)
文件的前几个字符(二进制)通常会给你一些关于文件类型的提示。
通过在记事本中打开一些二进制文件(rar,zip,mp3等)来试试。
答案 3 :(得分:0)
在php中尝试filetype()
或mime_content_type()
函数...
传递它返回文件类型的文件路径。