2009-05-28 11 views
1

Ce sont mes deux premières lignes:script php ne peut pas envoyer les en-têtes parce que les en-têtes ont déjà été envoyés, mais sont des caractères en dehors du script

<?php 
header('Content-Type: application/x-javascript'); 

Et il me donne les en-têtes déjà envoyés dans la ligne 1.

il est destiné à générer un fichier JavaScript qui charge à partir d'une page HTML, lorsqu'elle est cochée le fichier JavaScript à partir Firebug j'ai obtenu le fichier suivant:

1 <br /> 
2 <b>Warning</b>: Cannot modify header information - headers already sent by (output started at C:\Program Files\Apache Group\Apache2\htdocs\totoro\Js\libs.php:1) in <b>C:\Program Files\Apache Group\Apache2\htdocs\totoro\Js\libs.php</b> on line <b>1</b><br /> 
3 var Totoro = {}, $t = Totoro; 

Comme vous pouvez le voir, il crache un chara Cter qui ressemble à des caractères parasites, mais rien n'est envoyé, la première ligne est un appel de fonction header. Quel pourrait être le problème?

Répondre

13

Vous avez très probablement enregistré le fichier en UTF-8 avec BOM (byte-order mark), resave comme UTF-8 sans dity.

7

Cette séquence de caractères est la UTF-8 BOM. Lorsque vous utilisez UTF-8, enregistrez vos fichiers sans nomenclature (parfois aussi appelée signature).

En outre, vous devez déclarer l'encodage que vous utilisez. Comme la nomenclature UTF-8 est représentée par les caractères que vous avez nommés, vos données sont probablement interprétées avec ISO 8859-1, car la séquence d'octets de nomenclature UTF-8 0xEFBBBF représente les caractères ï (0xEF), » (0xBB) et ¿ (0xBF) dans l'ISO 8859-1.

donc enlever la nomenclature et utiliser ce champ d'en-tête Content-Type ainsi que le type MIME correct application/javascript et charset paramètre:

Content-Type: application/javascript;charset=utf-8 
Questions connexes