Php 如何使用文件获取图像扩展名?

Php 如何使用文件获取图像扩展名?,php,Php,我正试图将另一个站点的映像复制到我的服务器上,我计划使用 <? file_put_contents($toPath, file_get_contents($fromPath)); ?> 好的,但是要构建$toPath我需要文件的扩展名。 如果$fromPath是一个普通路径,末尾有文件名,我知道怎么做,但是如果我使用像facebook使用http://graph.facebook.com/user_id/picture?type=large 我怎样才能得到分机 谢谢大家 $s

我正试图将另一个站点的映像复制到我的服务器上,我计划使用

<? 
file_put_contents($toPath, file_get_contents($fromPath));
?>

好的,但是要构建
$toPath
我需要文件的扩展名。 如果
$fromPath
是一个普通路径,末尾有文件名,我知道怎么做,但是如果我使用像facebook使用
http://graph.facebook.com/user_id/picture?type=large
我怎样才能得到分机

谢谢大家

$size = getimagesize($fromPath);
$extension = image_type_to_extension($size[2]);

获取图像大小,获取文件类型。

在PHP5.3中,您可以使用
finfo_file()
,请参阅


这也适用于非图像。

无需猜测或使用mime类型或魔法字节。facebook graph api始终返回JPEG(有关一些讨论,请参阅)

但一般来说,以下是智能文件类型检测的参考:

如果您只有一个字节流,则是您的朋友


如果您有mime类型,只需使用它。

这比@Kolink的答案快得多:

$extension= end(explode("/", image_type_to_mime_type(exif_imagetype($photoURL))));

对于所有回答我的人,我回答说:
$file\u info=newfinfo(FILEINFO\u MIME);//面向对象方法$mime_type=$file_info->buffer(file_get_contents($fromPath));//e、 g.给出“图像/jpeg”回声$mime_类型;退出();或$finfo=finfo_open(FILEINFO_MIME_TYPE);//返回mime类型ala mimetype扩展名foreach(glob(“*”)作为$filename){echo finfo_file($finfo,$filename)。“\n”}finfo_close($finfo);或$finfo=finfo\u open(FILEINFO\u MIME\u类型);echo finfo_文件($finfo,$fromPath)
NOTHING WORKSTo@Kolink this worked'$size=getimagesize($fromPath)$扩展=图像类型到扩展($size[2]);echo$extension;'看起来问题在于我的PHP版本是5.2.17,finfo_file()只适用于PHP>=5.3.0…如果你不想在扩展名(例如:“.png”)之前得到点,只需添加false作为第二个参数:image_type_to_扩展名($size[2],false);
$extension= end(explode("/", image_type_to_mime_type(exif_imagetype($photoURL))));