2009-09-26 4 views
1

У меня возникает очень неприятная проблема в CakePHP, где в начале моего макета KML появляется пространство, которое заставляет Google Earth отклонять файл 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"?>" 

ЭСТ ЭСТ , пожалуйста, помогите!

+1

Вы уверены, что никакие символы не посылаются перед заголовком? Как конечные пробелы в классах контроллера и т. Д.? Вы подтвердили, что, например, пытаясь отправить заголовок «Местоположение: http://www.example.com/» (перенаправление)? – Residuum

+0

и т. Д., Что означало et cetera – notJim

ответ

3

Это может произойти, если вы включили php-файл с пробелом после закрытия ?>. По этой причине обычно рекомендуется, чтобы вы не включили этот тег (кроме, например, в представление, где вы указываете следующую переменную и другое содержимое).

+2

спасибо, что у меня было место в моем app_controller – Russell

+0

после 2 часов отладки ... space в app_model –

+0

Некоторые здесь, в моем компоненте captcha, пространство перед тегом php. Я редактировал функцию init в ComponentsCollection, чтобы найти, где она была. –

1

Это c/r после? > тег и до < kml тег. Объедините их, и это будет лучше. Как это ...

? > < KML

0

использование ob_clean(); очистить белое пространство

 Смежные вопросы

  • Нет связанных вопросов^_^