在 php 中将 svg 推送到浏览器

Push svg to the browser in php

使用 png,

header('Content-Type: image/png');
imagepng(imagecreatefrompng($pathToPng));

使用 svg,

header('Content-Type: image/svg+xml');
// ???

由于很难从社区获得帮助,我做了一个临时的工作脚本。希望对其他人有帮助。

$imgInfo = pathinfo($_GET['img']);
$imgRelativePath = $imgInfo['dirname'];
$imgName = urlencode($imgInfo['filename']);
$imgExtension = str_replace(' ', '+', $imgInfo['extension']);

switch ($imgExtension) {
case 'svg+xml':
    set_header('image/svg+xml');
    break;
case 'png':
    set_header('image/png');
    break;
}



$imgPath = sprintf(
    '%s/%s.%s',
    $imgRelativePath,
    $imgName,
    $imgExtension);


if ($file = fopen($imgPath,'r')) {

    while (!feof($file)) {
        print fread($file, 2048);
    }
}



function set_header ($contentType) {
    header("Content-Type: $contentType");
}