如何使用php检查网址是否为图片网址?

问题描述 投票:12回答:7

我需要检查网址是否为图片网址?我该怎么办?

示例:

php image validation url filenames
7个回答
25
投票

如果您绝对要确定,并且您的PHP已启用远程连接,则可以使用

https://stackoverflow.com/search?q=.jpg

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


11
投票

您可以将https://stackoverflow.com/search?q=.jpg发送到服务器,然后检查内容类型。这样,您至少知道服务器在“思考”什么是类型。



3
投票

我认为这个想法是通过curl获取标题url的内容

并检查标题

在调用http://www.google.com/profiles/c/photos/private/AIbEiAIAAABECK386sLjh92M4AEiC3ZjYXJkX3Bob3RvKigyOTEzMmFmMDI5ODQ3MzQxNWQxY2VlYjYwYmE2ZTA4YzFhNDhlMjBmMAEFQ7chSa4PMFM0qw02kilNVE1Hpw获得网页后,调用getimagesize('url'); 从HTTP标头获得内容类型字符串

在此链接中查看操作方法:

HEAD request


3
投票

可以使用此:

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.';

1
投票

这是一种需要卷曲的方法,但是比getimagesize更快,因为它不会下载整个图像。免责声明:它检查标头,但它们并不总是正确的。

curl_exec()

© www.soinside.com 2019 - 2024. All rights reserved.