使用 php 从 mysql 数据库表创建/更新 xml 文件


Creating/updating an xml file from a mysql database table with php

我有一个javascript图像库,它正在从XML文件中获取数据。我正在构建后端函数,以便其他人轻松更新图库。XML 文件中所需的所有数据都可以从数据库中的表中获得。

<?xml version="1.0" encoding="UTF-8"?>
<portfolio>
<items> 
    <item>
        <thumbnail>images/banner001.jpg</thumbnail>
        <preview>images/preview.jpg</preview>
        <category>banner</category>
        <description>Swatch MTV </description>
    </item>
    <item>
        <thumbnail>images/banner002.jpg</thumbnail>
        <preview>images/preview.jpg</preview>
        <category>banner,campaign</category>
        <description>Nike iD</description>
    </item>
    <item>
        <thumbnail>images/banner003.jpg</thumbnail>
        <preview>images/preview.jpg</preview>
        <category>banner</category>
        <description>Sony Handycam</description>
    </item>
    <item>
        <thumbnail>images/banner006.jpg</thumbnail>
        <preview>images/preview.jpg</preview>
        <category>banner</category>
        <description>Statoil App kampagne</description>
    </item>     
    <item>
        <thumbnail>images/design006.jpg</thumbnail>
        <preview>images/preview.jpg</preview>
        <category>web</category>
        <description>Hempel Website design</description>
    </item>
</items>
</portfolio>

在这方面,我有几个问题(请记住,我对 php 相当陌生):

  1. 哪个更好/更容易的选择:更新现有的XML文件或简单地用更新/更新的数据覆盖整个XML文件?
  2. 如何使用 PHP 创建相同的 XML 格式?
  3. 我一直在研究SimpleXML和DOMDocument。在我的情况下,哪一个更好/更容易使用?

如果你们能给我任何帮助,我将不胜感激。如果发布代码,请包括简短的描述/解释。

如果您需要澄清任何内容,请告诉我。

我认为当您用更新/更新的数据覆盖整个 xml 文件时很容易。下面是通过连接到数据库来创建 xml 数据的 php 文件。

测试.php

<?php header('Content-type: application/xml');echo "<?xml version='"1.0'" encoding='"UTF-8'"?>";
    //connect to db here
    $query1 = "select datas";
    $res1   = mysql_query($query1);
    echo '<portfolio>';
    echo '<items>';
    while($row1 = mysql_fetch_array($res1)) 
    {
    ?>
      <item>
        <thumbnail><?php echo $row1['yourdata1']; ?></thumbnail>
        <preview><?php echo $row1['yourdata2']; ?></preview>
        <category><?php echo $row1['yourdata3']; ?></category>
        <description><?php echo $row1['yourdata4']; ?></description>
      </item>
   <?php
   } 
  ?>
  </items>
</portfolio>

如果上面的文件名是test.php,那么当URL被给出时,你可以编写.htaccess重定向.php将URL重定向到.xml

下面的代码重定向到 test.php当 url 被给出时 http://yoursitename.com/test.xml

RewriteCond %{REQUEST_URI} test.xml
RewriteRule test.xml test.php [L] 

ad 1)恕我直言,最好将条目更新(添加/删除)到XML文件,如果您每次都生成新文件(以防有大量图像),则必须将大量数据保存到文件中...这对我来说似乎不是正确的方法。

AD 2)PHP有几个库可以帮助创建XML文件,例如你提到的SimpleXML - 我不时使用它并且工作正常。

AD 3)恕我直言,再次非常直截了当,易于理解的用途,我会推荐它。我认为没有必要在这里展示它是如何工作的......谷歌有很多例子。

如果你会卡在什么地方,不要急于在这里问。