php代码变成xml?

问题描述:

我试图评估mapvar.php的内容并将其保存到变量。这是代码:php代码变成xml?

<?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()的东西造成的,这是为什么?

+0

你的mapvar.php是怎么样的? –

+0

这是一个带有php变量的svg图像。无论如何解决。 – chintogtokh

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

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

而且,没有必要使用fopenfclosefile_put_contents

+0

啊,就是这样,我修改了mapvar.php的头文件,我不能像你的那样改变头文件(不能修改头文件信息 - 头文件已经发送)。谢谢。 – chintogtokh