0

我正在尝试评估 mapvar.php 的内容并将其保存到变量中。这是代码:

<?php
$filename = strval(rand(0,99999999999)).'.svg';
$fp=fopen($filename, 'wb+');

ob_start();
include 'mapvar.php';
$output = ob_get_clean();
ob_flush();

file_put_contents($filename,$output);
?>

<form action="download.php" method="post">
    <input type="hidden" name="filename" value="<?php echo $filename ?>" />
    <input type="submit" value="dl" />
</form>
<?php fclose($fp); ?>

出于某种原因,当我打开文件时,会显示此消息(在 Chrome 和 FF 中):

“此 XML 文件似乎没有与之关联的任何样式信息。文档树如下所示。”

...然后是评估的 html 代码。

这似乎是由 ob_start() 的东西引起的,这是为什么呢?

4

1 回答 1

1

mapvar.php可能会发送一个Content-Type: image/svg+xml标题或类似的东西。您可以稍后覆盖它:

$output = ob_get_clean();
ob_flush();
header('Content-Type: text/html');

此外,没有必要使用fopenor fclosewith file_put_contents

于 2013-06-30T15:14:25.053 回答