我正在使用wordpress模板,其中列出了我的ftp文件。如果我点击一个文件我调用d.php(d =下载),我只是传递文件的路径,我想强制下载
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文件。知道我能在这做什么吗?
谢谢
答案 0 :(得分:2)
在PHP中使用header()
函数时,必须在发送任何输出之前发送它。这意味着它必须在<html>
标记之前执行。这意味着将它包含在程序上更早的脚本中。
答案 1 :(得分:0)
我相信WordPress通过index.php路由所有内容,所以从技术上讲,你被包装在WordPress的内容中。
无论如何,有些东西会在您发送之前发送标题。这可能是空格,PHP输出,或实际的标题。