我知道这里有很多问题,但我试过的每个答案都没有解决我的问题
问题
我将xml保存在一个字符串上,我希望将它保存到一个文件中但不希望xml在一行中我想在pritty print中写入文件
此外还有一个更大的问题,而不是这个"
显示此"
,因为此文件将加载到不同的网站中,我无法{{1} }
请注意,"
变量的$content
不是"
我知道"
并不重要,但为了更容易分析生成的xml文件,我需要将xml格式化
这就是我正在使用的
\n
我也试过
$dirname = "temp/" . uniqid();
mkdir($dirname);
$filename = $dirname . "/gen.xml";
$doc = new DomDocument($content);
$doc->preserveWhiteSpace = false;
$doc->formatOutput = true;
$doc->save($filename);
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Length: ". filesize("$filename").";");
header("Content-Disposition: attachment; filename=gen.xml");
header("Content-Type: application/octet-stream; ");
header("Content-Transfer-Encoding: binary");
readfile($filename);
$fh = fopen($filename, 'a');
fclose($fh);
unlink($filename);
rmdir($dirname);
和
header("Content-type: text/xml");
答案 0 :(得分:2)
DomDocument
的{{3}}不接受xml字符串 - 而是可选版本和编码。
您可能想要的是加载$content
xml字符串:
$doc = new DOMDocument();
$doc->preserveWhiteSpace = false;
$doc->formatOutput = true;
$doc->loadXML($content);
$doc->save($filename);