2014-12-25 208 views
-3

我已经使用PHP创建了一个XML文件。我正在使用DOMDocument方法save()将DOM保存到文件中。我的问题是:是否可以指定我要放置文件的位置?例如,如果我有一个子目录中的脚本,然后我可以指定我想保存在根目录中的文件?将XML保存到特定位置

另外我拿它,我将不得不有正确的权限写入文件夹?

也可以在文件生成后下载文件?我正在使用PHP。

+0

您已经使用[DOM文档保存::()](http://php.net/manual/en/domdocument.save.php ),只需将路径更改为希望文件所在的路径(假定用户正在运行脚本,可能是Web服务器用户,具有写入权限)。只要下载文件,您只需将它发送到浏览器并使用正确的标题。 – prodigitalson

+0

所以我可以字面上有....保存(根/文件夹名/ thefiletosave)。基本上把文件路径放在函数中? –

+0

@JesseOrange:试试吧,如果事情不起作用,然后问;)http://stackoverflow.com/help – hakre

回答

0

是的,只需指定路径作为文件名的一部分。这是DOMDocument::save() method which you find documented and with samples in the PHP manual的第一个参数。

小代码示例,演示如何使用:

$domDoc->save($filename); 

$filename包含路径到要保存文件。如果您在为文件找到正确路径时遇到问题,请参阅您正在使用的文件系统和操作系统的文档。这可以根据系统而有所不同,但是大多数情况下,无论操作系统差异如何,路径名都遵循用目录分隔符表示的层次结构的通用原则。

对于任何与文件类型I/O相关的任务,请注意:运行脚本的进程必须有权在路径中创建文件 - 正如您可能想象的那样。只需启用错误报告和日志记录(取决于它是您的开发系统还是生产系统)并遵循任何消息以防止这会产生问题以了解原因。

也可以在文件生成后下载文件?我正在使用PHP。

是的,你可以,当你通过文件名php://output将文件保存到标准输出时,它可以直接下载。下载通常按照原样显示在浏览器中,如果您想要更改该内容,则将标准过程(将HTTP响应标头设置为大小,名称和内容类型等设置属性)也适用。相关材料到这一点则是:

+0

是否可以指定一个URL作为一个文件路径的姿势? –

+0

不。你必须编写一个http文章发送文件到另一台服务器。 ......除非你正在谈论UNC命名的本地服务器路径......例如\\ myserver \ c \ mystuff \ test.xml –

+0

@JesseOrange:如果您的服务器支持HTTP put,那么您可以。请参阅http://php.net/wrappers.http; http://php.net/stream_context_set_default; http://php.net/libxml_set_streams_context - 但下一次你应该提供一个例子,这样你就能清楚地知道你想问什么。否则,你会得到错误的答案。另请参阅xy问题:http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem – hakre