是否还有其他东西可以用来代替header("Content-type: text/xml");
我想从我的数据库中生成XML,并且我不断收到以下错误:
Warning: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/php32/Eindopdracht/api.php:1) in /Applications/MAMP/htdocs/php32/Eindopdracht/core/functions/api.php on line 41
我已经检查过我有任何空格,但我认为这不会导致错误。 这是我在PHP中编写的函数:
function generateXML(){
$sql="SELECT * FROM csvupload";
$result=mysql_query($sql);
$xml = new XMLWriter();
$xml->openURI("php://output");
$xml->startDocument();
$xml->setIndent(true);
$xml->startElement('chords');
while ($row = mysql_fetch_assoc($result)) {
$xml->startElement("chord");
$xml->writeAttribute('E', $row['item1']);
$xml->writeAttribute('a', $row['item2']);
$xml->writeAttribute('d', $row['item3']);
$xml->writeAttribute('g', $row['item4']);
$xml->endElement();
}
$xml->endElement();
header('Content-type: text/xml');
$xml->flush();
}
答案 0 :(得分:2)
您的header
电话必须在 之前发生任何内容输出到浏览器。
有可能,你文件的第一行就像[space]<?php
- 删除空间应该可以解决问题。
答案 1 :(得分:0)
你的文字编辑器是什么?我之前遇到过这个问题,我在编码菜单中使用Notepad ++,有一个名为Encode的选项,UTF-8没有BOM,您应该在其他编辑器中选择它或类似的东西。
您可以通过保存空文件并检查其文件大小来确保。
找到有关BOM的更多信息