我正在尝试编写服务器端脚本(PHP),以根据用户输入生成SVG图像.我使用以下代码:
<?php
echo '<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<head><meta http-equiv="Content-Type" content="svg+xml" /></head>
<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
<circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red"/>
</svg>';
?>
Run Code Online (Sandbox Code Playgroud)
我在某处读到MIME类型必须是svg + xml所以我尝试在内容类型中设置它,如上所示.Firefox正在接收正确的代码,但图像未呈现.有人知道这里要改变什么吗?
Pas*_*TIN 25
根据维基百科上的SVG页面,SVG应该作为image/svg+xml.
另请参阅:1.2 SVG MIME类型,文件扩展名和Macintosh文件类型
以下meta:
<meta http-equiv="Content-Type" content="svg/xml" />
Run Code Online (Sandbox Code Playgroud)
没有定义从服务器提供内容的方式 - 当你无法定义它的服务方式时,它更像是为HTML页面提供信息的方式......
而且,我不确定是否元素在SVG规范中有效- 我会让你检查^^
您需要做的是从服务器发送HTTP标头,指示数据的内容类型.
这是使用PHP header函数完成的; 在你的情况下:
header('Content-type: image/svg+xml');
echo '<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
<circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red"/>
</svg>';
Run Code Online (Sandbox Code Playgroud)
注意 :
<meta>和<head>标签; 不确定是否<head>应该删除,但是,因为它是空的....header函数的调用希望这可以帮助 !