PHP 中的 XMLWriter 将完整的源代码写入文件

XMLWriter in PHP writes full source code to the file

我正在尝试创建一个代码,从我的 WordPress SQL 数据库中提取一些信息到 XML 文件中。

我的 WordPress 页面中有一个管理面板菜单,其中包含一个启动代码的按钮:

$link = mysqli_connect('', '', '', ''); (with my database details)
    $sql = "SELECT post_id FROM wp_2_postmeta ORDER BY post_id";
    $res = mysqli_query($link, $sql);

    header("Content-Type: text/html/force-download");
    header("Content-Disposition: attachment; filename=adatszolgaltatas.xml");

    $xml = new XMLWriter();
    $xml->openURI("php://output");
    $xml->setIndent(true);
    $xml->setIndentString("    ");  
    $xml->startDocument('1.0', 'utf-8');

    $xml->startElement('post_ids');

    while ($row = mysqli_fetch_assoc($res)) {
    $xml->startElement("post_id");

    $xml->writeAttribute('post_id', $row['post_id']);
    $xml->writeRaw($row['post_id']);

    $xml->endElement();
    }

    $xml->endElement();
    $xml->endDocument();

    $xml->flush();
    unset($xml);
}

输出将是一个保存的 .xml 文件。问题是它不仅包含所需的数据,而且在输出行前后还有我提交它的页面的完整源代码。

什么会导致这样的问题?如何解决?

谢谢!

我设法解决了这个问题,方法是创建一个文件并将 XMLWriter 输出保存到服务器上的该文件,然后在删除它之前强制将其下载给用户。这样输出 .xml 是正确的。