2014-02-20 250 views
0

我想創建一個xml文件並在其中寫入代碼。但事情是,我必須將它切成三段,因爲代碼的中間部分是循環的。到目前爲止,這是我的代碼看起來像。創建一個xml文件

編輯

這是輸出我想

<download serverurl='http://localhost/files'> 
    <file filename='image1.PNG' md5='b45110dd47aa28f8400295ec70e6b0ef'/> 
    <file filename='image2.jpg' md5='3a3b3f573682ab177939b748c4623db0'/> 
    <file filename='image3.jpg' md5='deaee69864bedcd5c60af3bb46b47edc'/> 

我總是收到。

  <file filename='image2.jpg' md5='3a3b3f573682ab177939b748c4623db0'/> 
    <file filename='image3.jpg' md5='deaee69864bedcd5c60af3bb46b47edc'/> 
<download serverurl='http://localhost/files'>    
<file filename='image1.PNG' md5='b45110dd47aa28f8400295ec70e6b0ef'/> 
</download> 

我得到的輸出是非常隨機的。

END EDIT

public function download_package1(){ 
    $form = $this->getUserData(); 

    $serverurl = "<download serverurl='http://222.127.182.57/file'>"; 

    file_put_contents('download.xml', $serverurl, FILE_APPEND); 
} 

public function download_package_images ($filename){ 
    $form = $this->getUserData(); 

    $images = " 
    <file filename='".$filename."' md5='".md5_file($filename)."'/>"; 

    file_put_contents('download.xml', $images, FILE_APPEND); 

    //THIS IS FUNCTION IS IN LOOP. THERE ARE THE FILENAMES OF THE IMAGES UPLOADED 
} 

public function download_package_end(){ 
    $form = $this->getUserData(); 

    $end = " 
</download>"; 

    file_put_contents('download.xml', $end, FILE_APPEND); 

,但我的順序不是固定的。我已經嘗試了fopen/fopen,但同樣的事情發生。我真的不知道我怎麼能解釋這一點,但我希望我有道理。如果任何人都可以請幫助我,我會非常感激。謝謝。

+0

你可以發佈您收到並導致您所期待的結果? – Tamara

+0

編輯我的問題@Tamara – user3026876

回答

0

而不是建立手工XML,使用XML解析器:

$xml = simplexml_load_string("<download />"); 
$xml->addAttribute('serverurl', 'http://localhost/files'); 

for ($i = 0;$i < 3; $i++) 
{ 
    $file = $xml->addChild('file'); 
    $file->addAttribute('filename', "image$i.png"); 
    $file->addAttribute('md5', 'whateverhash');  
} 

$xml->asXML('filename.xml'); 

看到它的工作:https://eval.in/104654