Php 如何获取不带';你没有穿衣服吗?
我在目录中有一些图像:Php 如何获取不带';你没有穿衣服吗?,php,file,Php,File,我在目录中有一些图像:c:/images/。例如: 1.jpg 1.png 2.gif 3.jpg 我只有图像名,没有扩展名,我知道一些图像存在于c:/images/中,名称如下:1,2,3,,我不知道这些图像的扩展名 如何获取没有扩展名的文件的扩展名 我尝试使用: var_dump(pathinfo ('c:/images/1')); 但这只会带来: array(3) { ["dirname"]=> string(3) "c:\images\" ["basename"]=>
c:/images/
。例如:
- 1.jpg
- 1.png
- 2.gif
- 3.jpg
c:/images/
中,名称如下:1,2,3,
,我不知道这些图像的扩展名
如何获取没有扩展名的文件的扩展名 我尝试使用:
var_dump(pathinfo ('c:/images/1'));
但这只会带来:
array(3) { ["dirname"]=> string(3) "c:\images\" ["basename"]=> string(1) "1" ["filename"]=> string(1) "1" }
返回(除其他信息外)图像的MIME类型。所以使用
var_dump(getimagesize('c:/images/1'));
您将在数组元素MIME
中获得MIME类型。例如image/jpeg
或image/png
还有更快的function,但此函数只返回MIME类型的整数。可以在PHP手册中找到与图像类型的可能返回值相匹配的表。如果有,可以返回文件的mime类型:
$finfo = finfo_open(FILEINFO_MIME_TYPE);
var_dump(finfo_file($finfo, '/var/www/favicon.ico'));
将打印:
字符串(12)“图像/x图标”
扩展在web上意义不大。浏览器和(web)服务器并不真正使用它们。他们查看mime类型。浏览器会将名为
image.png
的JPEG检测为JPEG。我以为文件是1.jpg
不是1
->c:/images/1
?!我不知道文件的扩展名,我只知道文件名。那么,您的文件的预期结果是什么.jpg和.png
?找不到扩展名。唯一的方法是分析二进制文件数据,如果您知道它们是图像的话。但这是一项非常艰巨的任务,因为有很多图像类型。在大多数情况下,图像类型被编码到二进制文件体中,但无论如何,这是一项艰巨的任务。如果像您的示例一样,您同时拥有1.jpg
和1.png
,它会给您带来什么?您可能需要使用类似于glob
-glob('C:\Images\1.*')
对于1.jpg和1.png,如何工作getimagesize('c:/images/1')
?不,不说错误打开流失败:在中没有这样的文件或目录
如何获得没有扩展名的文件?如果您获得“打开流失败:中没有这样的文件或目录”,则该文件不存在。您的代码中可能有错误。对于您的另一个问题:文件没有“扩展名”,它们有一个MIME类型,该扩展名可以帮助某些操作系统找到正确的MIME类型。如果getimagesize()
返回的数组的元素mime
是image/jpeg
,那么扩展名应该是。jpg
如果downvoter能够解释我为什么被否决,那就太好了。您可以尝试使用var_dump(finfo_文件($finfo,/var/www/favicon')代码>这表示错误如何获取没有扩展名的文件的扩展名?@mhkyazd您无法获取没有扩展名的文件的扩展名。。。明显地你犯了什么错误?将路径更改为您的路径。