我已经创建了一个PHP DOM xml片段并将其保存为如下字符串:
<?php
// create a new XML document
$doc = new DomDocument('1.0');
...
...
...
$xmldata = $doc->saveXML();
?>
Run Code Online (Sandbox Code Playgroud)
现在我无法使用标头发送文件下载提示,我无法将文件写入服务器,或者我不希望文件存在于其中.
像保存这个文件链接或下载提示的东西会很好.我该怎么做?
我从评论中看到,您在CMS框架内工作,并且无法阻止在您的代码所在之前输出内容.
如果您正在使用的脚本已经输出内容(超出您的控制范围),那么您无法在一个脚本中执行您尝试实现的内容.
您的脚本可以发送标题"以下内容是HTML",然后输出HTML或发送标题"以下内容是XML,是附件并具有特定文件名".你不能两者都做.
您可以输出包含指向单独脚本的链接的HTML以下载XML文件,也可以发出文件下载并不输出HTML.
因此,您必须在要修改的CMS脚本的输出中添加下载链接,然后在单独的脚本中处理下载.
我已经做了一个应该有所帮助的工作示例.该示例包括一个包含下载链接的简单HTML文档,以及一个处理下载的PHP脚本.
查看下面的代码或查看实例.
HTML(删除了多余的绒毛,不一定有效)
<html>
<head>
<title>XML Download Example</title>
</head>
<body>
<a href="download.php">Download XML example</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
PHP
<?php
// Populate XML document
$doc = new DomDocument();
// ... various modifications to the document are made
// Output headers
header('Content-type: "text/xml"; charset="utf8"');
header('Content-disposition: attachment; filename="example.xml"');
// Output content
echo $doc->saveXML();
?>
Run Code Online (Sandbox Code Playgroud)
如果您完全无法通过第二个脚本处理下载(可能无法访问相关数据),则必须重新考虑问题.
归档时间: |
|
查看次数: |
15544 次 |
最近记录: |