1

我正在使用 SimpleXML 写入我的 Apache 服务器上的 XML 文件。这是我的PHP代码:

<?php
  $xmlFile = 'http://localhost/database.xml';
  //$xml = new SimpleXMLElement($xmlFile, NULL, TRUE);
  $xml = simplexml_load_file($xmlFile);
  $xml->addChild("User", "TestUser2");
  file_put_contents($xmlFile, $xml->asXML());
?>

我的 XML 文件代码:

<Usernames>
  <User>TestUser1</User>
</Usernames>

我遇到的问题是 SimpleXML 不会写入我的 XML 文件。我尝试了许多不同的方法($xml->asXML($xmlFile), DOMDocument ... ->save),但都没有奏效。我更改了文件的权限,但仍然无法写入:

权限

我今天花了几个小时试图让这个工作没有成功。如果有人有任何类型的解决方案,很高兴听到。

4

1 回答 1

3

当您将内容写入文件时,您应该传递一个系统文件路径作为第一个变量,您的 $xmlFile 变量是一个 URL。将其更改为本地文件名,它应该保存。

根据您的评论,以下应该有效

<?php
  $xmlFile = 'http://localhost/database.xml';
  $xml = simplexml_load_file($xmlFile);
  $xml->addChild("User", "TestUser2");
  file_put_contents('/Applications/MAMP/htdocs/DataBase/database.xml', $xml->asXML());

但是,我会仔细检查 $xmlFile URL - 根据您所说的,您的本地 URL 可能是http://localhost/DataBase/database.xml- 您应该检查您是否可以使用 $xmlFile URL 在 Safari 中打开您的 XML 文件。

于 2013-01-06T06:42:12.703 回答