J'utilise PHP pour transmettre des informations dans un fichier texte à l'utilisateur qui est ensuite utilisé comme entrée pour une application. J'utilise la méthode montrée dans l'extrait suivant pour servir le fichier à l'utilisateur.Comment arrêter PHP préfixe LF au début du fichier
header('Content-type: text/csv');
header('Content-Disposition: attachment; filename=filename.dat');
echo $data;
exit();
je reçois la sauvegarde que le dialogue fin et les données est présent, le seul problème est qu'il ya un caractère de saut de ligne au début du fichier de sortie que je ne peux pas l'air de se débarrasser.
Il se trouve que l'application qui utilise les données est sensible aux espaces blancs et bien qu'il soit facile de corriger cela, forcer les utilisateurs à mettre à jour n'est pas un itinéraire que je veux descendre pour diverses raisons.
Est-ce que quelqu'un sait ce qui cause cette situation et, plus important encore, toute solution de contournement.
Les en-têtes HTTP sont censés se terminer par CRLF. Est-ce que le LF qui est ajouté à votre fichier est le LF qui termine le dernier en-tête? Si c'est le cas, c'est un bogue dans votre client HTTP. – jrockway
Soit '$ data' contient ce saut de ligne, soit il y a quelque chose avant cet extrait qui le fait. Peut-être un saut de ligne avant d'ouvrir le bloc PHP. – Gumbo
@Gumbo: ça me semble une réponse raisonnable, pourquoi utiliser un commentaire? – AnthonyWJones