我有一个奇怪的错误,不知道如何解决它而不浪费太多时间.我的控制器中有一个方法应该返回xml使用:
header("Content-type: text/xml");
header("Content-Disposition: attachment; filename=output.xml");
header("Pragma: no-cache");
header("Expires: 0");
Run Code Online (Sandbox Code Playgroud)
问题是由于空行而输出是无效的xml,我不知道它来自哪里,你知道如何解决这个问题吗?也许忽略这条空行或什么?我不想调试整个框架......我试图使用 var_dump(debug_backtrace())
但是我可能因为学说而得到一个大混乱.
Bra*_*rad 17
几乎总是,<?php ?>
标签之前或之后会有一个空行.如果不在您的主文件中,请查看您的包含.
另外,一点点提示...如果您的文件是纯PHP,只需启动它,<?php
永远不要关闭PHP标记.关闭它是没有必要的,然后你避免在最后的空行导致你的麻烦.
此外,任何错误消息都将在标题之前打印到文档中。但有时在没有错误的情况下很难找到罪犯。尝试这个:
ob_start()
Run Code Online (Sandbox Code Playgroud)
将第一件事放在您的脚本中,这将确保在您调用之前不会输出任何其他内容
ob_flush()
Run Code Online (Sandbox Code Playgroud)
这对您来说可能不是必需的(ob_flush)。
另外,不久前我遇到了这个问题,其中包含在另一个脚本中间的脚本在关闭 php 标记后有一个字符,这导致该单个字符将标题向下推并使响应无效。
所以我会遵循 Brad 提出的建议,除非必须,否则不要使用关闭 php 标签。
归档时间: |
|
查看次数: |
5880 次 |
最近记录: |