2009-09-26 4 views
1

J'ai un problème vraiment frustrant dans CakePHP où un espace continue à apparaître au début de ma mise en page de fichier KML qui provoque le rejet du fichier KML par Google Earth!Pourquoi CakePHP insère-t-il un espace avant ma mise en page 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> 

pour la sortie I get

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

ect ect s'il vous plaît aider!

+1

Êtes-vous sûr, qu'aucun caractère sont envoyés avant l'en-tête? Comme les espaces de fin dans les classes de contrôleur, etc.? Avez-vous confirmé que, par exemple, en essayant d'envoyer un en-tête "Location: http://www.example.com/" (redirection)? – Residuum

+0

etc, ce qui signifie et cetera – notJim

Répondre

3

Cela peut se produire si vous incluez un fichier php qui a un espace après la fermeture ?>. Pour cette raison, il est généralement recommandé de ne pas inclure cette balise (sauf, par exemple, dans une vue, où vous êtes echo et où une autre variable suit).

+2

merci j'ai eu un espace dans mon app_controller – Russell

+0

après 2 heures de débogage ... espace dans app_model –

+0

Certains ici, dans mon composant captcha, espace avant php tag. J'ai modifié la fonction init dans ComponentsCollection pour trouver où elle était. –

1

C'est le c/r après le? > et avant le < kml tag. Mets-les ensemble et ça devrait être mieux. Comme ceci ...

? > < kml

0

utilisation ob_clean(); pour nettoyer l'espace blanc

Questions connexes