使用 PHP 识别有效的 SVG

identify valid SVG using PHP

我需要检查文件类型 SVG 的上传。不幸的是,没有 IMAGETYPE_SVG 并且 finfo_file 在我的机器上不起作用。如何确保上传有效?但是,我确实可以通过 system()

访问 GraphicsMagick

您只需检查它是否只是 .svg

$path = $_FILES['uploadedfile']['name'];
//gets extension
$e = pathinfo($path, PATHINFO_EXTENSION);
if($e == "svg"){
//it is svg
}else{
//not svg 
}

我找到了使用 GraphicsMagick 的解决方案:

$valid = FALSE;
@exec("gm identify +ping filename", $result);
if (is_array($result)) {
    if (in_array("MVG", explode(" ", implode(" ", $result))) || in_array("SVG", explode(" ", implode(" ", $result)))) $valid = TRUE;
}