2017-10-13 55 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