我需要在运行时动态生成一个 文件。请帮我用PHP动态生成以下 文件。

<?  version=\"1.0\" encoding=\"UTF-8\"?>
< >
 <track>
     <path>song1.mp3</path>
     < >Track 1 - Track  </ >
 </track>
 <track>
     <path>song2.mp3</path>
     < >Track 2 - Track  </ >
 </track>
 <track>
     <path>song3.mp3</path>
     < >Track 3 - Track  </ >
 </track>
 <track>
     <path>song4.mp3</path>
     < >Track 4 - Track  </ >
 </track>
 <track>
     <path>song5.mp3</path>
     < >Track 5 - Track  </ >
 </track>
 <track>
     <path>song6.mp3</path>
     < >Track 6 - Track  </ >
 </track>
 <track>
     <path>song7.mp3</path>
     < >Track 7 - Track  </ >
 </track>
 <track>
     <path>song8.mp3</path>
     < >Track 8 - Track  </ >
 </track>

 

第一种方法:

我使用Simple Element。

<?php

$  = new Simple Element(\'< />\');

for ($i = 1; $i <= 8; ++$i) {
    $track = $ ->addChild(\'track\');
    $track->addChild(\'path\', \"song$i.mp3\");
    $track->addChild(\' \', \"Track $i - Track  \");
}

Header(\'Content-type: text/ \');
print($ ->as ());

 

第二种方法:

使用Fluid ,您可以非常轻松地生成 。

$tracks = fluid (\' \');

$tracks->times(8, function ($i) {
    $this->add([
        \'track\' => [
            \'path\'  => \"song{$i}.mp3\",
            \' \' => \"Track {$i} - Track  \"
        ]
    ]);

});

 

第三种方法:

要在PHP中创建 文档,您应该实例化DOMDocument类,创建子节点并将这些节点附加到文档树的正确分支中。

供参考,您可以阅读http://it.php.net/manual/en/book.dom.php

现在我们将快速浏览下面的代码。

  • 在第2行,我们创建一个空的 文档(只需指定 版本(1.0)和编码(utf8))
  • 现在我们需要填充 树:
    • 我们必须创建一个 node(第5行)
    • 我们必须将其添加到正确的位置。我们正在创建根,所以我们将它直接附加到domdocument。
    • 注意create元素将元素追加到节点并返回插入的节点,我们保存此引用以将轨道节点附加到根节点(顺便称为 )。

这些是基础知识,您可以在一行中创建和追加一个节点(例如,第13个),您可以使用dom api执行许多其他操作。它是由你决定。

<?php    
    /* create a dom document with encoding utf8 */
    $domtree = new DOMDocument(\'1.0\', \'UTF-8\');

    /* create the root element of the   tree */
    $ Root = $domtree->createElement(\" \");
    /* append it to the document created */
    $ Root = $domtree->appendChild($ Root);

    $currentTrack = $domtree->createElement(\"track\");
    $currentTrack = $ Root->appendChild($currentTrack);

    /* you should enclose the following two lines in a cicle */
    $currentTrack->appendChild($domtree->createElement(\'path\',\'song1.mp3\'));
    $currentTrack->appendChild($domtree->createElement(\' \',\'  of song1.mp3\'));

    $currentTrack->appendChild($domtree->createElement(\'path\',\'song2.mp3\'));
    $currentTrack->appendChild($domtree->createElement(\' \',\'  of song2.mp3\'));

    /* get the   printed */
    echo $domtree->save ();
?>

编辑:只是另一个提示:使用 document(dom文档one或simple one)而不是打印 的主要优点是 tree可以使用xpath查询进行搜索

 

第四种方法:

一个简单的方法是:

<?php
// Send the headers
header(\'Content-type: text/ \');
header(\'Pragma: public\');
header(\'Cache-control: private\');
header(\'Expires: -1\');
echo \"<?  version=\\\"1.0\\\" encoding=\\\"utf-8\\\"?>\";

echo \'< >\';

// echo some dynamically generated content here
/*
<track>
    <path>song_path</path>
    < >track_number - track_ </ >
</track>
*/

echo \'</ >\';

?>

将其保存为.php

收藏 打印