PHP 生成的 SVG 文件在浏览器中添加了头部和身体标签


PHP generated SVG file is having head and body tag added in browser

>我有一个动态生成的SVG嵌入在HTML页面中。它正在显示,但有不需要的水平和垂直滚动条,v.烦人!通过检查 Chrome 浏览器中的元素,我看到它有一个<头>和<身体>标签,对于 SVG 来说不正常!如果我更改"data"属性以包含传统的静态 SVG,则不会在浏览器中添加头部或身体标签。

我正在从 Apache 服务器上的 PHP 页面提供 SVG XML,并将其作为对象嵌入到标记中:

<object id="map" type="image/svg+xml" data="mapphp.svg"></object>

浏览器显然检测到这不是传统的SVG文件,我只能假设它将其视为Content-Type:text/html并添加头部和正文标签以标准化它认为写得不好的标记。

我什至尝试过用.htaccess屏蔽PHP文件,并用mod_headers.c覆盖标题

<IfModule mod_rewrite.c>
  RewriteCond %{REQUEST_URI} mapphp.svg [NC]
  RewriteRule ^(.*)$ map.php?r=$1 [L,QSA]
</IfModule>
<ifModule mod_headers.c>
  <filesMatch "mapphp'.svg$">
    Header set ETag "813c0-3a0-4e7c49319ad82"
    Header unset Content-Type
    Header unset X-Powered-By
    Header unset Server
  </filesMatch>
</ifModule>

然而,它似乎仍然将我的SVG视为HTML文档,并给它一个<头>和<正文>标签。

附言发布此内容后我将上床睡觉,因此如果我直到明天才回复,请不要生气。我将非常感谢任何帮助。

在进行任何输出之前,map.php包含以下标头header("Content-type: image/svg+xml");