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)

Related of "XML / PHP: содержимое не допускается в прологе"

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

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

вместо:

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

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

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

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

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

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

EDIT: попробуйте это,

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

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

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

finaly обнаружил, что это файл include (в вашем случае файл DBconnection.class.php)

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