如何将此php脚本的XML输出保存到自己的文件中?

时间:2016-05-22 11:55:20

标签: php xml

您好我有这个PHP脚本生成XML站点地图文件。 Google不允许站点地图拥有超过50,000条记录(即网址) - 但我有超过一百万条记录。我正在考虑进行循环,但需要弄清楚如何将此脚本生成的XML输出保存到自己的站点地图xml文件中,例如。 sitemap0_to_50000.xml

谢谢!对于这个新手PHP编码器的任何帮助将不胜感激:)

<?php
      $databaseServer = "localhost";
      $databaseUsername = "username";
      $databasePassword = "password";
      $databaseName = "database";
      $databaseTable = "tablename";
      header("Content-Type: text/xml");
      function xmlentities($text)
      {
        $search = array('&','<','>','"','\'');
        $replace = array('&amp;','&lt;','&gt;','&quot;','&apos;');
        return str_replace($search,$replace,$text);   
      }
      print chr(60)."?xml version='1.0' encoding='UTF-8'?".chr(62);
      print chr(60)."urlset xmlns='http://www.google.com/schemas/sitemap/0.84' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd'".chr(62);
      $sql = "SELECT * FROM `".$databaseTable."`";
      $link = @mysql_connect($databaseServer,$databaseUsername,$databasePassword);
      @mysql_select_db($databaseName,$link);
      $result = mysql_unbuffered_query($sql,$link);
      while($row = mysql_fetch_array($result,MYSQL_ASSOC))
      {
        // create the loc (URL) value based on the $row array, for example:
        $loc = $row["url"];
        print "<url>";
        print "<loc>".xmlentities($loc)."</loc>";
        print "</url>";
      }
      print "</urlset>";
    ?>

1 个答案:

答案 0 :(得分:1)

您可以直接将其写入PHP中的Xml文件

,而不是将其回显到页面上

或者你也可以使用php中的 saveXML()函数将完整的DOM树保存到文件中

你可以在这里找到完整的文档

http://php.net/manual/en/domdocument.savexml.php

希望它有所帮助!