2014-02-16 97 views
0

我在php中實現了一個基本的mvc框架。問題是,當我想創建一個動態的kml文件未打開時,因爲會生成空格開頭的文件。如果我從任何文件(而不是框架)執行它,它會正常工作。PHP MVC框架+生成KML文件

鏈接:本地主機/收音機/索引/資產

控制器:indexController.php 方法:資產()

代碼:

public function asset() { 

    $dom = new DOMDocument('1.0', 'UTF-8'); 



    $kmlOutput = $dom->saveXML(); 
    $kmlOutput = trim($kmlOutput);    
    header('Content-type: application/vnd.google-earth.kml+xml'); 
    header('Content-disposition: attachment; filename="myfilename.kml"'); 
    echo $kmlOutput; 

} 

誤差在谷歌地球:

error

KML生成:預先

enter image description here

感謝。

回答

0

輸出開始處的空白通常是由關閉php tag後面的換行符引起的。

<?php¶ 
¶ 
// Some code here¶ 
¶ 
?>¶ 
¶ 

<?php ?>以外的任何內容,直接視爲輸出。因此,你不應該在庫文件中使用結束標籤。

quote Zend Framework

對於只包含PHP代碼的文件,結束標誌( 「?>」)是絕不允許 。它不是PHP所要求的,並且忽略它可以防止 將意外的空白空間注入到響應中。

+0

是的,你說得對。謝謝你的幫助。你每天都會學到新的東西。顯示文檔後,我發現了另一個像我這樣的人的解決方案:ob_clean(); – JohnPortella