Bli*_*izz 24

如果您想完全确定,并且您的PHP已启用远程连接,您可以使用

getimagesize('url');
Run Code Online (Sandbox Code Playgroud)

如果它返回一个数组,它是PHP识别的图像类型,即使图像扩展名不在url中(按照你的第二个链接).您必须记住,此方法将为每个请求建立远程连接,因此可能缓存已在数据库中探测的URL以降低连接.


Vol*_*erK 11

您可以向服务器发送HEAD请求,然后检查Content-type.这样你至少知道服务器"认为"类型是什么.


Jak*_*ake 5

您可以使用如下所示的 getimagesize 函数检查 url 是否为图像。

function validImage($file) {
   $size = getimagesize($file);
   return (strtolower(substr($size['mime'], 0, 5)) == 'image' ? true : false);  
}

$image = validImage('http://www.example.com/image.jpg');
echo 'this image ' . ($image ? ' is' : ' is not') . ' an image file.';
Run Code Online (Sandbox Code Playgroud)