找不到幽灵马车return/line 提要
Cannot find the ghost carriage return/line feed
我有一个 .php file_get_contents 一个 openssl_pkcs7 签名和正则表达式的文件,trimmed 在回显它供用户下载之前。
但是,下载的文件在文件的 top/start 处有一行 break/new line/carriage return,这破坏了我的后续代码。当我在记事本++/记事本中打开它时,签名和正则表达式 template.mobileconfig 在文件开头没有这个空行,但是当通过浏览器下载时它就在那里。我对它插入的位置感到困惑,甚至在 trim 插入它之后,它仍然存在。
代码:
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=signed.mobileconfig");
$content = file_get_contents('./template.mobileconfig');
$trimmed = trim($content, " \t\n\r[=11=]\x0B");
echo $trimmed;
下载的文件在 notepad/notepad++ 中如下所示:
第 1 行始终为空。我试过 readfile() 和 trim() 来尝试解决它但无济于事。
在线十六进制编辑器的输出:
x0A 显然是一个换行符,但它来自哪里?为什么 trim() 没有摆脱它?
我想到的是尝试将 x0A 添加到您的 trim。
$trimmed = trim($content, " \t\n\r[=10=]\x0B\x0A");
您的 include()
可能有一个换行符 \n
:
<?php
//code
?> <======== \n right there (not visible)
找到所有包含的 PHP 文件并删除开始标记前的空格:
_
<?php
并去掉结束标签(不需要):
?>
我有一个 .php file_get_contents 一个 openssl_pkcs7 签名和正则表达式的文件,trimmed 在回显它供用户下载之前。
但是,下载的文件在文件的 top/start 处有一行 break/new line/carriage return,这破坏了我的后续代码。当我在记事本++/记事本中打开它时,签名和正则表达式 template.mobileconfig 在文件开头没有这个空行,但是当通过浏览器下载时它就在那里。我对它插入的位置感到困惑,甚至在 trim 插入它之后,它仍然存在。
代码:
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=signed.mobileconfig");
$content = file_get_contents('./template.mobileconfig');
$trimmed = trim($content, " \t\n\r[=11=]\x0B");
echo $trimmed;
下载的文件在 notepad/notepad++ 中如下所示:
第 1 行始终为空。我试过 readfile() 和 trim() 来尝试解决它但无济于事。
在线十六进制编辑器的输出:
x0A 显然是一个换行符,但它来自哪里?为什么 trim() 没有摆脱它?
我想到的是尝试将 x0A 添加到您的 trim。
$trimmed = trim($content, " \t\n\r[=10=]\x0B\x0A");
您的 include()
可能有一个换行符 \n
:
<?php
//code
?> <======== \n right there (not visible)
找到所有包含的 PHP 文件并删除开始标记前的空格:
_
<?php
并去掉结束标签(不需要):
?>