如何使用php生成xml文件

时间:2016-06-14 10:13:57

标签: php xml forum

您好我一直在尝试创建一个论坛而且我做的正确,但问题是整个页面正在重新加载,这意味着如果您在页面上有太多评论,它将始终将您重定向到顶部并且您有向下滚动到最后一条评论,所以我学会了ajax来解决这个问题,但是我面对这个问题说“第323行第28行的错误:实体'ldquo'未定义”请问这里解释的是生成的PHP XML

<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
?>

<?php
require 'connect.inc.php';
$sql= $db->query("SELECT * FROM comments");
$results = $sql->fetchAll(PDO::FETCH_ASSOC);


echo '<comments>'."\n";
foreach($results as $result)
{
   echo '<comment>'."\n";
        echo $result['post']."\n";
   echo '</comment>'."\n";
}
echo '</comments>';

?>

2 个答案:

答案 0 :(得分:0)

似乎与你的$结果相关。 我用假的$ results尝试你的代码,它运行良好。 顺便说一下,假的$结果是: $ results = array(array('id'=&gt; 1,'post'=&gt;'a'),array('id'=&gt; 2,'post'=&gt;'b'));

演示代码:

<?php
  header('Content-Type: text/xml');
  echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
?>

<?php
  #require 'connect.inc.php';  
  #$sql= $db->query("SELECT * FROM comments");
  #$results = $sql->fetchAll(PDO::FETCH_ASSOC);
  $results = array(array('id' => 1, 'post' => 'a'), array('id' =>2 , 'post' => 'b'));


  echo '<comments>'."\n";
  foreach($results as $result)
  {
      echo '<comment>'."\n";
      echo $result['post']."\n";
      echo '</comment>'."\n";
  }
  echo '</comments>';

  ?>

答案 1 :(得分:0)

在php中,您可以将数组转换为xml数据

$test_array = array (
    'bla' => 'blub',
    'foo' => 'bar',
    'another_array' => array (
            'stack' => 'overflow',
    ),
);
$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($test_array, array ($xml, 'addChild'));
print $xml->asXML();

O / P: -

<?xml version="1.0"?>
<root>
  <blub>bla</blub>
  <bar>foo</bar>
  <overflow>stack</overflow>
</root>