2011-08-19 70 views
0

這裏是我的代碼:PHP的XML文件追加

public function write($txt){ 
       $randID = rand(); 
       $doc = new DOMDocument(); 
       $doc->formatOutput = true; 
       $doc->load($this->fileName); 
       $b = $doc->createElement("input"); 
       $id = $doc->createElement("id",$randID); 
       $b->appendChild($id); 

       $text = $doc->createElement("text",$txt); 
       $b->appendChild($text); 
       $doc->appendChild($b); 

       $doc->save($this->fileName); 

     } 

爲什麼這個代碼總是覆蓋舊的文件?爲什麼它不附加到現有文件的末尾?我是新來的XML與PHP :)

+2

您打開'新的DomDocument()',而不是現有的['DomDocument :: load()'](http://www.php.net/manual/ru/domdocument.load.php) – J0HN

+1

Can您在調用腳本之前給出了文件a)的示例,b)腳本完成後,c)預期的結果? – VolkerK

回答

2

我認爲這是因爲它只是加載文件在內存中,比添加所需的XML,並將其保存到磁盤。

由於在保存時使用相同的文件名,它會用包含所有XML的新文件(包括新元素和數據)覆蓋原始文件。我感覺合理。