【问题标题】:PHP & WordPress: headers already sent - what to do? [duplicate]PHP 和 WordPress:标头已发送 - 怎么办? [复制]
【发布时间】:2010-07-19 22:29:09
【问题描述】:

我正在开发一个 WordPress 模板,其中列出了我的 FTP 文件。如果我单击一个文件,我会调用 d.php (d=download),在其中我只需传递文件的路径,我想使用

强制下载
header('Content-Disposition: attachment; filename="'. $file .'"');

这对我不起作用,因为浏览器一直告诉我:

警告:无法修改标头信息 - 标头已由(输出开始于 /clientdata/n5200-2-dynamic/a/l/mydomain.net.au/www/wp-content/themes/mytheme/d.php :25) 在第 45 行的 /clientdata/n5200-2-dynamic/a/l/mydomain.net.au/www/wp-content/themes/mytheme/d.php 中

知道我可以在这里做什么吗? d.php 甚至不包含任何 WordPress 特定的东西(get_header() 或 get_footer())——它只是我主题模板目录中的一个简单的 php 文件。知道我可以在这里做什么吗?

谢谢

【问题讨论】:

  • d.php 中有什么,特别是第 25 行,可以发送输出?

标签: php wordpress


【解决方案1】:

在 PHP 中使用 header() 函数时,必须在发送任何输出之前发送它。这意味着它必须在<html> 标记之前执行。这意味着将其包含在程序上较早的脚本中。

【讨论】:

  • 你救了我这么大的头痛哈哈
【解决方案2】:

我相信 WordPress 会通过 index.php 路由所有内容,因此从技术上讲,您被包裹在 WordPress 的内容中。

无论如何,有些东西会在你之前发送标题。这可能是空格、PHP 输出,或者实际上是实际的标头。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 2013-05-03
    相关资源
    最近更新 更多