在将图像链接更新到数据库之前验证图像链接是否真的是图像链接

时间:2013-03-08 10:10:12

标签: php

如果使用php确实是图像链接,我们如何验证图像链接?

我有一个网站,用户可以保存图像链接但我想在将其添加到数据库之前检查该链接,而我只想接受jpg和png文件类型。

支持:http://sphotos-a.ak.fbcdn.net/hphotos-ak-ash3/65952_491770220880511_1455944784_n.jpg

如何验证?

只想知道是否有办法:)

提前致谢

感谢所有人的帮助

3 个答案:

答案 0 :(得分:1)

您可以使用PHP函数get_headers来检查文件的内容类型。

你可以伪造标题(例如使用PHPs header()函数),但是对于基本验证,这应该可行。

$headers = get_headers("http://sphotos-a.ak.fbcdn.net/hphotos-ak-ash3/65952_491770220880511_1455944784_n.jpg", 1);
if ($headers["Content-Type"] == "image/png" or $headers["Content-Type"] == "image/jpeg") {
    // It is a PNG or JPG
}

此外,它可能(但我不完全确定)服务器返回Content-Type的变体,如“image / jpg”或“img / png”。你必须玩它,直到你涵盖所有可能性。

答案 1 :(得分:0)

您可以尝试使用CURL检索图片并检查标题以查看Content-Type。如果它与图片匹配,您可以使用imageMagick复制图片,或者只是将链接保存到数据库中。

答案 2 :(得分:0)

您只能查看标题以查看内容类型,这可以确保您只保留不存在的文件类型或无错文件。我也很想知道是否可以验证(存在)URL或图像URL?