如何在没有扩展名的情况下判断图像的文件类型?他们是如何工作的?

时间:2017-07-08 13:39:00

标签: php

我正在处理网络上没有文件扩展名的图片,如下所示:

https://static1.squarespace.com/static/52a74d9ae4b0253945d2aee9/t/52ed63b1e4b04368c021b921/1463088116168/?format=500w

这样的图片可以在例如使用squarespace制作的网站上找到,例如此演示:https://bedford-demo.squarespace.com/

我尝试使用PHP下载这些图像并将它们存储在我的服务器上。但是如何找出这些图像的实际网址?这是如何运作的?我怎么能告诉这个图像的文件类型?这个巫术是什么?

任何提示都表示赞赏!

2 个答案:

答案 0 :(得分:3)

快速回答:

要查找任何网址返回的Content-Type,请查看以下答案:
Get Content-Type of requested URL in PHP

为什么需要Content-Type

就像互联网上的每个网页都没有以.html结尾的网址一样,图片也不需要在其网址中设置“扩展程序”。

确定浏览器是否将从网址中检索到的数据视为图片的内容是HTTP响应中的 Content-Type标头

您发布的网址会返回以下HTTP标头:

enter image description here

对于HTML文档,Content-Typetext/html。通过在浏览器中打开开发人员控制台的网络选项卡,可以在浏览时检查标题。寻找“响应标题”。

答案 1 :(得分:2)

您可以使用getimagesize获取文件的mime类型:

<?php
$size = getimagesize("https://static1.squarespace.com/static/52a74d9ae4b0253945d2aee9".
            "/t/52ed63b1e4b04368c021b921/1463088116168/?format=500w");
print_r($size["mime"]);
?>

打印:

image/jpeg