2009-09-26 45 views
1

我在CakePHP中遇到了一個非常令人沮喪的問題,那就是在我的KML文件佈局開始時會出現一個空格,導致Google地球拒絕KML文件!爲什麼CakePHP在我的xml佈局之前插入空格?

<?php header("Content-disposition: attachment; filename=area.kml"); 
header("Content-Type: application/vnd.google-earth.kml+xml kml; charset=utf8"); 
header("Content-Transfer-Encoding: binary"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
echo '<?xml version="1.0" encoding="UTF-8"?>'; 
?> 
<kml xmlns="http://earth.google.com/kml/2.2"> 
    <Document> 
     <?php echo $content_for_layout ?> 
    </Document> 
</kml> 

的輸出我得到

" <?xml version="1.0" encoding="UTF-8"?>" 

ECT ECT 請幫助!

+1

確實,沒有字符頭前發送?像控制器類中的尾隨空白等?你是否確認過通過嘗試發送「位置:http://www.example.com/」(重定向)標題? – Residuum 2009-09-26 18:42:03

+0

等,等等et cetera – notJim 2009-09-26 19:05:23

回答

3

如果您在關閉?>後包含一個空格的php文件,則可能發生這種情況。出於這個原因,通常建議您不要包含該標記(例如,在視圖中,除了變量和其他內容之外)。

+2

謝謝我在我的app_controller – Russell 2009-09-26 19:51:06

+0

在調試2小時後有一個空間... app_model中的空間 – 2013-12-12 15:36:19

+0

一些在這裏,在我的驗證碼組件中,在php標籤之前的空間。我編輯了ComponentsCollection中的init函數以查找它的位置。 – 2014-07-12 19:06:09

1

這是c/r之後? >標記和< kml標記之前。把它們放在一起,它應該會更好。像這樣...

? > < KML

相關問題