2017-10-13 35 views
1

解決方案:「>」找不到鬼回車/換行

發現.php爲1包括有換行符的標記之後。刪除他們重新運行的代碼和神祕的換行符已經消失。阿門。謝謝!

Where the ghost line feed is from

問題:

我有呼應它供用戶下載之前簽訂openssl_pkcs7和regex'd文件的file_get_contents,修剪以.php。

但是,下載的文件在打破我的後續代碼的文件的頂部/開始處有一個換行/新行/回車。當我在記事本++ /記事本中打開它時,signed和regex的template.mobileconfig在文件的開頭沒有這個空行,但是當它通過瀏覽器下載時,它在那裏。我對它插入的位置感到困惑,甚至在修剪它之後,它仍然存在。

代碼:

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; 

下載的文件是這樣的,在記事本/記事本++:

enter image description here

1號線總是空的。我試過readfile()和trim()嘗試解決它,但無濟於事。從十六進制編輯器在線

輸出:

Output of a hex editor:

X0A顯然是一個換行符但它從哪兒來的?爲什麼沒有修剪()擺脫它?

Line Feed x0A

+0

您是否在十六進制編輯器中查看過該文件e第1行中的內容是什麼? –

+0

還沒有!感謝您指出。讓我試試看看我得到了什麼,我會在這裏更新。 – f0rfun

+0

@ ChrisR.Timmons用Hex編輯器輸出更新。 x0A是換行符。但它從哪裏來?爲什麼不修剪它? – f0rfun

回答

1

很可能你的include() S的一個有一個換行符\n

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

查找您所有的包括PHP文件和打開標籤之前刪除空格:

_ 
<?php 

,擺脫了結束標籤(不需要):

?> 
+0

聖盃。非常感謝。我經歷了所有包含的.php,並注意到其中一個在'?>'標記後有2個換行符。標記完全並重新運行代碼。問題已修復! – f0rfun

+0

我很高興我可以幫助:) –

0

什麼我腦海試圖X0A添加到您的裝飾。

$ trimmed = trim($ content,「\ t \ n \ r \ 0 \ x0B \ x0A」);

+0

嘗試過你的方法,換行仍然存在!太令人沮喪了:( – f0rfun

+0

感謝您的幫助!問題已解決。 – f0rfun