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 是正确的。
我正在尝试创建一个代码,从我的 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 是正确的。