2010-06-08 4 views
2

у меня есть эта ошибка сообщение и я не знаю, откуда берется проблема исходит от:XML/PHP: Содержимое не допускается в прологе

<?php include "DBconnection.class.php"; 

$sql = DBConnection::getInstance(); 

$requete = "my resquest (which is working)"; 

$sql->query($requete); 

$xml = '<?xml version="1.0" encoding="UTF-8"?>'; 
$xml .='<GamerCertified>'; 


      while($row = $sql->fetchArray()){ 

      $moyenne_services = ($row['services'] + $row['serviceCli'] + $row['interface'])/3; 
      $moyenne_services = round($moyenne_services,1); 

      $moyenne_ge = ($row['services'] + $row['serviceCli'] + $row['interface'] + $row['qualite'] + $row['rapport']) /5; 
      $moyenne_ge = round($moyenne_ge,1); 

      $xml .= '<GSP>'; 

      $xml .= '<nom>'.$row["nom"].'</nom>'; 

      $xml .= '<votes>'.$row["nb_votes"].'</votes>'; 

      $xml .= '<services>'.$moyenne_services.'</services>'; 

      $xml .= '<qualite>'.$row["qualite"].'</qualite>'; 

      $xml .= '<prix>'.$row["rapport"].'</prix>'; 

      $xml .= '<transparence>'.$row["transparence"].'</transparence>'; 

       $xml .= '<moyenneGenerale>'.$moyenne_ge.'</moyenneGenerale>'; 

      $xml .= '<serveursDedies>'.$row["offreDedie"].'</serveursDedies>'; 

      $xml .= '</GSP>'; 
     } 


$xml .= '</GamerCertified>'; 
echo $xml; 

Благодарности

(PS: FF/хром отголоски что без тега: bc2x56.99.89.8081ckras1710.09.0080crazy-fun-game11010.010.00100crystal-serv349.79.69.509.60dedicore69.49.38.609.21)

ответ

1

Я думаю, что проблема в другом месте. Попробуйте использовать следующий код:

$xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; 

вместо:

$xml = '<?xml version="1.0" encoding="UTF-8"?>'; 

Это потому, что вы храните весь текст XML в переменной PHP, которая иногда идут наперекосяк.

Также обратите внимание, что вы не печатаете пробельный символ перед началом тега XML (<?xml ...). И просто используйте один возврат каретки (например, «введите» на клавиатуре) после тега определения определения XML (... encoding="UTF-8"?>), чтобы начать первый начальный тег вашего XML (<GameCertified>).

Надеюсь, это поможет.

2

XML Преамбула должна быть в отдельной строке. Ваш тег < GamerCertified> не признан тегом.

Просто добавьте начало тега на новую строку, и ошибка исчезнет.

EDIT: Пожалуйста, попробуйте это,

$xml = '<?xml version="1.0" encoding="UTF-8"?>' . "\n"; 
$xml .='<GamerCertified>'; 
+0

я сделал это, но теперь: Содержимое не допускается в прологе .. = '( –

+0

Смотрите мой выбор ... –

+0

Просто судимое это, та же ошибка:. Содержимое не допускается в прологе Файл кодируется в UTF -8 без спецификации (notepad ++) = '( –

0

Ну, во-первых, удалить пробелы перед открытием <?php тега. Во-вторых, это единственный файл в скрипте? Имеются ли какие-либо символы без пробелов после тега </GamerCertified>? Если это так, это, скорее всего, проблема.

+0

пространство между открытием и . –

0

У меня была та же проблема.

, наконец нашел, что это был включаемый файл (в вашем случае файл «DBconnection.class.php»)

инклюдников был сохранен на UTF-8. Редактор файлов имеет возможность сохранять в «utf-8» или «utf-8 без спецификации», меняя второй вариант для моих включенных файлов, разработанных для меня ... и удалял содержимое перед тегом xml.

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