我正在尝试创建一个xml文件并在其中编写代码。但问题是,我必须将其分为3个部分,因为代码的中间部分是循环的。到目前为止,这就是我的代码的样子。
修改
这是我想要的输出
<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 OF 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 :(得分:0)
不是手动构建XML,而是使用xml-parser:
$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