PHP:为什么这个强制 mime 下载会添加 2 个额外的空行?

2023-12-09

我编写了一个 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(使用前将#替换为@)

PHP:为什么这个强制 mime 下载会添加 2 个额外的空行? 的相关文章

  • 单个返回语句与多个返回语句? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 PHP 中实现前向索引?

    我希望在 PHP 中实现一个简单的前向索引器 是的 我确实知道 PHP 并不是完成这项任务的最佳工具 但无论如何我还是想这样做 其背后的理由很简单 我想要一个 并且是 PHP 版本 让我们做一些基本假设 整个互联网包括 大约五千个 HTML
  • Laravel 8 图像不显示

    我在用Laravel 8 试图显示来自storage app subject image 路径 但不显示 下面是我的代码blade img src asset subject image data gt subject image alt
  • 无法将外键值插入链接表

    我目前正在尝试将数据插入名为的表中 客户报价 该表充当 顾客 表和 客户关税 桌子 它还记录通过以下方式提交数据的用户 user table 这是我的数据库的架构 https i stack imgur com gyCdb png http
  • 使用 Laravel 返回一对多 Eloquent 关系中的最后一条记录

    假设存在一个One To Many关系 其中用户有许多工作 以及最后一条记录job表是用户当前的作业 让用户返回上一份工作的更好方法是什么 这是我尝试过的 User Class public function ejob return thi
  • 为什么 PHP 字符串连接运算符是点 (.)? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • PHP 数组转换为 Javascript 数组

    下午都 下面的代码工作完美 但是 我需要将 php sql 数组的每一行拉出并放入脚本 var 中 关于如何编写可以做到这一点的 while 循环有什么想法吗 谢谢你的帮助 var enableDays enableDays push 附加
  • 根据注册后的时间自动删除Wordpress用户?

    在使用用户访问管理器的基本 WordPress 3 1 设置中 是否可以自动删除 x 天前的用户 我没有找到此功能的插件 人们将如何实施这一举措 我是否能够使用 sql 或 php 查询设置一个 cron 作业 从而每天自动从数据库中删除
  • Laravel 强制 SSL 给出“此网页有重定向循环”

    我正在使用 Laravel 4 1 并且想要在整个站点范围内强制使用 SSL 我的应用程序部署在 Heroku 上 将其添加到任一App before或作为过滤器 if Request secure return Redirect secu
  • 在 PHP 中扩展单例

    我正在使用一个 Web 应用程序框架 其中一部分由许多服务组成 所有服务均以单例形式实现 它们都扩展了一个 Service 类 其中实现了单例行为 如下所示 class Service protected static instance p
  • php 发送带有图像的电子邮件

    我正在尝试发送一封带有图片的电子邮件 我的电子邮件正文是 当我收到电子邮件时 我看不到图片 相反 我 看 img src http planet earth bogus us icons secret pictures gif 我知道这是因
  • PHP 中的并行处理 - 你是如何做到的?

    我目前正在尝试在 php 中实现一个作业队列 然后 队列将作为批处理作业进行处理 并且应该能够并行处理一些作业 我已经做了一些研究并找到了几种实现它的方法 但我并不太了解它们的优点和缺点 例如 通过多次调用脚本来进行并行处理fsockope
  • Laravel 上的图像更新并删除旧图像

    尝试在我的更新控制器中实现更新文章似乎可行 但问题是当我只想更新帖子而不上传图像时 旧的总是会被删除 但这是不应该的 这是我的商店功能 public function store Post post post gt update this
  • Doctrine QueryBuilder 重用部件

    我想计算所有符合我的条件的字段 并使用学说查询生成器逐页获取它们 我生成的查询取决于我的过滤器字段 第一部分是计算记录 以便我可以计算页数 qb em gt createQueryBuilder qb gt select COUNT m i
  • 如何编辑 Woocommerce 单一产品元模板中显示的内容?

    我正在为客户做一些工作并使用 wordpress woocommerce 他们要求我将类别移动到我已经完成的单个产品页面上的产品名称下 但他们不希望它打印 类别 类别 1 类别 2 等 他们希望删除 类别 并且它实际上只列出类别的名称 而不
  • empty() 在对象的非空属性上返回 TRUE

    我遇到了一个非常奇怪且意想不到的问题 empty 正在返回TRUE由于我不知道的原因 在一处非空的房产上 class MyObject private property public function construct property
  • SQL 未插入到 Yii 中具有关系的表中

    我正在尝试创建一个用户 但所有值都没有插入到数据库中 Systems user 表与partys 表有关系 因为party id 是sytems user 的主键 没有插入任何内容 甚至没有错误 它只是返回到 创建 页面 这是我的架构 Ta
  • Laravel Eloquent with()-> 返回 null

    我正在尝试使用 Eloquent 来获取具有以下功能的特定产品 brand id映射到a的列brands表 该brand数组返回空 这里有什么明显需要改变的地方吗 product Product with images gt with br
  • 带缓存的简约 PHP 模板引擎,但不带 Smarty?

    有大量的问题 https stackoverflow com search q php template engine cache寻找 正确的 PHP 模板引擎 但它们都不专注于缓存 有谁知道一个轻量级 高质量 基于 PHP 5 的模板引擎
  • jQuery 不断 ping 以获得 Ajax 响应

    如何使用 jQuery 不断运行 PHP 脚本并每秒获取响应 并将鼠标上的少量数据发送到同一脚本 我真的需要添加一些随机扩展才能让这样一个简单的计时器工作吗 迭代是人类的 递归是神圣的 L 彼得 多伊奇 http www devtopics

随机推荐

  • 当轴标签分成多条线时会偏离中心

    我在用graph twoway scatter并添加我自己的ylabels 我经常有很长的标签并将它们分成多行 然而当我想要破解的时候却遇到了问题some标签超过两行 但不超过两行 当我这样做时 单行标签相对于它们的中心是偏离的tick标记
  • Laravel 如何使用 Eloquent 获取对象的行号?

    我想根据用户的创建日期了解用户的位置 我该如何使用 Eloquent 来做到这一点 我希望能够做这样的事情 User getRowNumber user obj 我想你想要 MySQL 解决方案 所以你可以这样做 DB statement
  • 选定的项目数据从表格到 ZK 中的文本框

    我正在开发一个小型 Web 应用程序 用于存储医院患者的数据 以便更多地了解 zk 及其令人惊叹的功能 这次我的目标是 当我选择一行 复选标记 时 我想将该行的数据 红色 获取到相应的文本框 蓝色 当我选择表的任何行时 这将起作用 也许这是
  • Python - CSV:具有不同长度行的大文件

    简而言之 我有一个 20 000 000 行的 csv 文件 它具有不同的行长度 这是由于陈旧的数据记录器和专有格式造成的 我们得到以下格式的最终 结果作为 csv 文件 我的目标是将此文件插入到 postgres 数据库中 我怎样才能做到
  • HomeAsUp 按钮在 Android 4.2.2 和 Appcompat 21.0.0 中无效

    我使用 Appcompat 21 中的工具栏而不是标准操作栏 一切都很顺利 除了HomeAsUp额外活动中的按钮不起作用 当我打开PrefsActivity 下面的代码片段 HomeAsUp按钮正常显示 一个向左的小箭头 当我单击按钮时 从
  • 如何调整 html canvas 元素的大小?

    我在 html 中静态定义了一个带有宽度和高度的画布元素 如果我尝试使用 JavaScript 动态调整其大小 设置新的宽度和高度 在画布的属性上或通过样式属性 我在 Firefox 中收到以下错误 未捕获的异常 异常 对WrappedNa
  • WINAPI - 设置组合框下拉列表的背景和文本颜色

    所以我尝试使用 Common Controls 和 WINAPI 设置 ComboBox 的背景和文本颜色 我确实设法设置了组合框本身的背景和文本颜色 但其下拉列表的颜色保持不变 这几乎就是我所做的 创建组合框时 我使用了CBS DROPD
  • 我需要一个 php 正则表达式来用另一个标签替换一个标签

    这是我需要能够做到的 我需要匹配以下标签 span text sample span 我需要用 html3 兼容标签替换 span 但保留中间的文本 替换后的最终标签应如下所示 u text sample u 我只是不擅长正则表达式 似乎无
  • ILMerge 替代方案,如何将应用程序的依赖 DLL 嵌入 EXE 文件中?

    如此处所述我试图将 dll 嵌入到 exe 应用程序中 以便只分发一个 exe 但是当我尝试在安装了完整 NET 4 的 xp 计算机上运行我的应用程序时 它只是崩溃而没有错误 我将以下代码放在主要方法 STAThread static v
  • 发布编译时 WCF .SVC Debug="true" 被忽略?

    默认情况下 SVC 文件包含 Debug true 我想知道如果您编译发布版本是否会忽略它 或者仍然使用调试符号进行编译 Ex Debug true属性在 ServiceHost仅当您将服务编写为inline svc 文件中的代码 或在 中
  • 如何在不同条件下选择同一字段两次并将结果显示为单独的字段

    我想用 C 创建一个表适配器 如下所示 我希望在不同的条件下在表中使用相同的字段两次 并且它必须显示为两个不同的字段 这是我的源表 来自AttendanceReg我需要的表Count每个学生的记录基于AttendStatus找出他们在的天数
  • 如何判断 Pandas 中的值是否随维度变化

    假设我有一些特定日期的客户数据 我想看看他们的地址是否已更改 超过那些日期 理想情况下 我想将发生更改的两列复制到新表中 或者只是获取总更改量的指标 所以 如果我有一张像这样的桌子 Date Customer Address 12 31 1
  • 如何获得倒排索引?

    我新使用 Spark 如何使用 Spark 获取 csv 文件的倒排索引 我有 csv 文件 df show id title tags closeddate 48702270 null null null 48702455 null
  • 使用 jQuery jsonp 跨域调用 ASP.NET Web 服务

    我的问题是已知问题并已讨论here and here 但即使在阅读并实施了建议的解决方案之后 我也无法完成这项工作 问题 Web 服务返回 xml 而不是 json
  • 阐明 Java 对 Unicode 的进化支持 [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我发现 Java 对 char 和 codepoint 的区分很奇怪而且不合适 例如 字符串是字符数组或 字母表中出现的字母 与代码点相反 代码点可以是单个字母 也可能是复合或代理对 然而
  • 在 Mac OS 上使用 gdb 进行 Fortran 调试?

    我在使用 gdb 在 Mac OS Mountain Lion 上调试 Fortran 程序时遇到问题 当我调用 gdb fortran executable name 从终端 我收到以下消息 This GDB was configured
  • 处理/转置 Pandas Dataframe

    我得到了以下熊猫数据框 Id Category 1 type 2 1 type 3 1 type 2 2 type 1 2 type 2 我需要处理上述数据帧并将其转置为 Id Category type 1 Category type 2
  • 如何使用方法引用/java 8 泛化实用函数

    我遇到过一种常见情况 我有一个对象列表 需要生成一个带有单个属性的逗号分隔字符串 然后每个属性都用单引号引起来 2 示例 public String partIDsToString List
  • 64 位机器上 QWORD 的大小是多少?

    我目前正在寻找上述问题的答案 到目前为止 我发现人们说 字大小是指处理器寄存器的大小 这表明在 64 位机器上 字大小为 64 位 因此 QWORD 4 字 的大小为 256 位 但另一方面 我发现了类似的来源this有人说大小为 128
  • PHP:为什么这个强制 mime 下载会添加 2 个额外的空行?

    我编写了一个 PHP 脚本来创建 txt 制表符分隔文件 我需要将其强制下载到网络浏览器 它完成了这一切 但是当我将文件与源进行比较时 强制下载的文件包含两个额外的空行 这是代码 Force download of the tab del