2017-10-13 4 views
1

Solution:Vous ne trouvez pas le retour chariot fantôme/ligne vierge

Trouvé 1 de .php comprennent la ligne a nourrit après la balise '>?. Supprimé ils re-ont couru le code et le fil de ligne mystérieux est parti. Amen. Merci beaucoup!

Where the ghost line feed is from

Problème:

J'ai .php que file_get_contents d'un openssl_pkcs7 signé et le fichier regex'd, parés avant l'écho pour les utilisateurs à télécharger.

Cependant, le fichier téléchargé a un retour à la ligne/nouvelle ligne/retour chariot au début/début du fichier qui rompt mon code suivant. Le fichier signé et regex'd template.mobileconfig n'a pas cette ligne vide au début du fichier lorsque je l'ouvre dans notepad ++/notepad mais il est là quand il est téléchargé via un navigateur. Je suis perplexe quant à l'endroit où il a été inséré et même après l'avoir coupé, il est toujours là.

code:

header("Content-type: text/plain"); 
header("Content-Disposition: attachment; filename=signed.mobileconfig"); 
$content = file_get_contents('./template.mobileconfig'); 
$trimmed = trim($content, " \t\n\r\0\x0B"); 
echo $trimmed; 

Le fichier téléchargé ressemble à ceci dans le bloc-notes/notepad ++:

enter image description here

Ligne 1 est toujours vide. J'ai essayé readfile() et trim() pour essayer de contourner le problème, mais en vain.

sortie de l'éditeur hexadécimal en ligne:

Output of a hex editor:

x0A est apparemment un saut de ligne, mais où est-il en venir? Pourquoi ne pas couper() s'en débarrasser?

Line Feed x0A

+0

Avez-vous consulté le fichier dans un éditeur hexadécimal? e Qu'est-ce qui est actuellement dans la ligne 1? –

+0

Pas encore! Merci de l'avoir signalé. Laissez-moi essayer et voir ce que je reçois et je vais mettre à jour ici. – f0rfun

+0

@ ChrisR.Timmons Mis à jour avec la sortie de l'éditeur hexadécimal. x0A est un saut de ligne. Mais d'où vient-il? Pourquoi n'a pas coupé l'enlever? – f0rfun

Répondre

1

Il est possible de vos include() s a une nouvelle ligne \n:

<?php 
//code 
?>  <======== \n right there (not visible) 

Retrouvez tous vos fichiers PHP inclus et supprimer les espaces avant la balise d'ouverture:

_ 
<?php 

Et se débarrasser de la étiquette de fermeture (non nécessaire):

?> 
+0

Merci beaucoup, j'ai parcouru tous les .php inclus et remarqué que l'un d'eux avait 2 lignes après la balise '?>'. tag tout à fait et re-couru le code Problème résolu! – f0rfun

+0

Je suis heureux que je pourrais aider :) –

0

Ce qui vient à l'esprit tente d'ajouter x0A à votre assiette.

$ trimmed = taille ($ content, "\ t \ n \ r \ 0 \ x0B \ x0A");

+0

J'ai essayé votre méthode, le saut de ligne est toujours là! Si frustrant :( – f0rfun

+0

Merci pour l'aide tho! Problème résolu – f0rfun