我编写了一个 PHP 脚本来创建 .txt 制表符分隔文件。我需要将其强制下载到网络浏览器。它完成了这一切,但是当我将文件与源进行比较时,强制下载的文件包含两个额外的空行。这是代码:
// Force download of the tab del .txt file to the web browser:
header('Content-Type: application/download');
header("Content-Disposition: attachment; filename=$tab_del_file");
header("Content-Length: " . filesize($tab_del_file));
$fp = fopen($tab_del_file, "r");
fpassthru($fp);
fclose($fp);
Linux Shell 命令比较两个文件并显示有额外的空行:
$ diff example.txt /tmp/example.txt
25a26,27
我将下载的 example.txt sftp 到 /tmp 目录,这样我就可以在服务器上进行比较。为什么下载的版本中会添加两个空行?修复方法是什么?谢谢!
由于 php 代码本身看起来不错并且不会产生新行,因此这只有一个原因。你有一个结束语?>
标记和文件末尾的额外新行:
?>
<--- empty line
<--- empty line
请注意,php 标签之外的内容不会被 PHP 解析,只会转发到浏览器。
解决办法:去掉封口?>
标签或额外的新行。我通常更喜欢不使用?>
顺便说一句,我应该提到这一点:
$fp = fopen($tab_del_file, "r");
fpassthru($fp);
fclose($fp);
可以简化为
readfile($tab_del_file);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)