2016-06-14 3 views
0

Здравствуйте, я пытаюсь создать форум, и я сделал это правильно, но проблема в том, что вся страница была перезагружена, а это значит, что если у вас слишком много комментариев на странице, она всегда будет перенаправляться вы на вершине, и вам нужно прокрутить вниз до последнего комментария, чтобы я научился ajax, чтобы исправить это, но, тем не менее, я сталкиваюсь с этой проблемой, говорит: «Ошибка в строке 28 в столбце 323: Entity« ldquo »не определено», в чем проблема, пожалуйста объясните здесь PHP, который генерирует XMLКак сгенерировать файл xml с помощью php

<?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>'; 

?> 
+0

текст комментария содержит амперсанд (&), который недоступен в xml – splash58

+1

Вы должны иметь возможность обернуть символы, которые не разрешены в XML с помощью CDATA. – Tom

+0

спасибо большое, да, это была проблема –

ответ

0

Кажется, что вы получили результаты за $. Я пробую ваш код с поддельными $ results, он работает хорошо. BTW, результаты поддельных $: $ results = array ('id' => 1, 'post' => 'a'), array ('id' => 2, 'post' => '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>'; 

    ?> 
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> 
+0

спасибо, я буду помнить об этом –

Смежные вопросы