2013-06-30 50 views
0

我試圖評估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

回答

1

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