我想知道,我有一个项目,其中一个人将链接复制到表单中。现在这个链接必须是一个图像,大多数用户说的是永远不要相信用户输入。
我将其缩小到 preg_match() 可以检查链接上是否有可以显示在我的网站上的图像。
我的问题基本上是你如何确保在检查表单时,它是一个图像,而不是像扩展名末尾带有 .jpg 的病毒。
我想知道,我有一个项目,其中一个人将链接复制到表单中。现在这个链接必须是一个图像,大多数用户说的是永远不要相信用户输入。
我将其缩小到 preg_match() 可以检查链接上是否有可以显示在我的网站上的图像。
我的问题基本上是你如何确保在检查表单时,它是一个图像,而不是像扩展名末尾带有 .jpg 的病毒。
使用finfo_file获取文件的 mime 类型。
如果 mime 类型类似于image/gif
or image/png
...,则该文件是图像。
$url = 'http://foo.bar.com/path.jpg?arg=value#anchor';
if (preg_match("/\.(jpg|png)$/",parse_url($url, PHP_URL_PATH)){
// YOUR CODE HERE
}
这匹配以 .jpg 或 .png.... 结尾的文件名。只需在括号中添加您想要允许的扩展名(由 | 符号分隔)